Как бы вы сказали Django возвращать ImageField.url (не относительный путь) при сериализации модели? - PullRequest
2 голосов
/ 21 марта 2012

ImageField на модели

some_image = models.ImageField(upload_to= get_upload_path)

Вот что я использую для сериализации:

data = serializers.serialize("json",ModelName.objects.all(),use_natural_keys=True)

JSON, который я получаю для some_image, относится к MEDIA_URL

чтобы решить это вручную, я вызываю some_image.url, и это прекрасно работает, как мне сделать так, чтобы это было значением по умолчанию, которое возвращает изображение при использовании serializers.serialize

Ответы [ 2 ]

0 голосов
/ 18 августа 2016

Я тоже пытался найти правильное решение. Но в итоге придумали следующий код:

stores = list(Store.objects.all().values('title', 'logo'))
for store in stores:
    store['logo'] = \
          request.build_absolute_uri(settings.MEDIA_URL+store['logo'])
stores_json = json.dumps(stores)
0 голосов
/ 21 марта 2012

Вот документы для указания, какие поля сериализуются: https://docs.djangoproject.com/en/dev/topics/serialization/#subset-of-fields

Похоже, вы должны включить URL и все остальные поля, кроме some_image.

...