#python #django #django-rest-framework
#python #django #django-rest-framework
Вопрос:
У меня есть lat, long, указанный в моей базе данных как:
...
lat = models.DecimalField(_('Latitude'), max_digits=8, decimal_places=5, null=True, blank=True)
lng = models.DecimalField(_('Longitude'), max_digits=8, decimal_places=5, null=True, blank=True)
...
Я хочу, чтобы моя модальная сериализация выглядела как:
{
...
"location": {
"lat": ...,
"long": ...
}
...
}
Как мне этого добиться?
Ответ №1:
Одним из способов является то, что вы можете создать свойство в модели, как показано ниже.
@property
def location_info(self):
return dict(
lat=self.lat,
lng=self.lng
)
Затем вы можете создать поле dict в своем сериализаторе и указать source в качестве своего свойства. Поскольку это свойство, оно может быть полем только для чтения.
location = serializers.DictField(source='location_info', read_only=True)