У меня есть файловое поле, которое определено в моей модели следующим образом:
class Profile(models.Model):
...
profile_picture = models.FileField(blank=True)
Затем у меня есть такое представление JSON:
from django.forms.models import model_to_dict
class ProfileView(APIView):
def get(self, request, format='json'):
profile = ...
profile_serialized = model_to_dict(profile)
return Response(profile_serialized, status=status.HTTP_200_OK)
Я использую DRF, но меня не беспокоит DRF. model_to_dict преобразует модель в словарь, поэтому я могу вывести ее как JSON. Однако я продолжаю получать ошибку проверки:
ValueError: The 'profile_picture' attribute has no file associated with it.
Если поле поля пустое, я не могу его сериализовать. Как мне подойти к решению этой проблемы? Должен ли я создать функцию @property в моделях, выполняющих проверку, или есть лучший подход к этому?
Спасибо!
Каков тогда правильный способ сериализации модели? Я не могу найти ничего по этому поводу.
В итоге я использовал сериализатор DRF.





В итоге я использовал сериализаторы DRF вместо model_to_dict, и все работало нормально.
связанные: code.djangoproject.com/ticket/27492