format api elastic results
This commit is contained in:
parent
f21b4005aa
commit
441c16281d
|
|
@ -70,3 +70,14 @@ class EstablishmentDocumentSerializer(DocumentSerializer):
|
|||
@staticmethod
|
||||
def get_description_translated(obj):
|
||||
return get_translated_value(obj.description)
|
||||
|
||||
def to_representation(self, instance):
|
||||
ret = super().to_representation(instance)
|
||||
|
||||
dict_merge = lambda a, b: a.update(b) or a
|
||||
ret['tags'] = map(lambda tag: dict_merge(tag, {'label_translated': get_translated_value(tag.pop('label'))}), ret['tags'])
|
||||
ret['establishment_subtypes'] = map(lambda subtype: dict_merge(subtype, {'name_translated': get_translated_value(subtype.pop('name'))}), ret['establishment_subtypes'])
|
||||
if ret.get('establishment_type'):
|
||||
ret['establishment_type']['name_translated'] = get_translated_value(ret['establishment_type'].pop('name'))
|
||||
ret['address']['city']['country']['name_translated'] = get_translated_value(ret['address']['city']['country'].pop('name'))
|
||||
return ret
|
||||
|
|
@ -17,4 +17,6 @@ def get_translated_value(value):
|
|||
return None
|
||||
elif not isinstance(value, dict):
|
||||
field_dict = value.to_dict()
|
||||
elif isinstance(value, dict):
|
||||
field_dict = value
|
||||
return field_dict.get(get_current_language())
|
||||
|
|
|
|||
|
|
@ -55,14 +55,15 @@ class TranslateFieldTests(BaseTestCase):
|
|||
start=datetime.now(pytz.utc),
|
||||
end=datetime.now(pytz.utc),
|
||||
is_publish=True,
|
||||
news_type=self.news_type
|
||||
news_type=self.news_type,
|
||||
slug='test',
|
||||
)
|
||||
|
||||
def test_model_field(self):
|
||||
self.assertIsNotNone(getattr(self.news_item, "title_translated", None))
|
||||
|
||||
def test_read_locale(self):
|
||||
response = self.client.get(f"/api/web/news/{self.news_item.id}/", format='json')
|
||||
response = self.client.get(f"/api/web/news/{self.news_item.slug}/", format='json')
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
news_data = response.json()
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user