2016-06-07 4 views
3

models.pyДжанго остальные рамки ImageField опционально

picture = models.ImageField(upload_to='Images/', 
          default='/Images/None/No-img.jpg', blank=True,null=True) 

serializers.py

class UserProfileSerializer(serializers.ModelSerializer): 
    picture = serializers.ImageField(max_length=None, 
            allow_empty_file=True, use_url=True) 

    class Meta: 
     model = UserProfile 
     fields = ('id','picture',)  
     read_only_fields=('id') 

Но это все еще показывает, как нужное поле, я не могу сделать запрос пост с изображением, является его ошибка?

+0

ли вы уже попробовать: URL = forms.URLField (метка = 'Ваш сайт', требуется = False) ака требуется = False – Zargold

+0

Вы, вероятно, не с помощью формы, так, может быть, в models.py : null = Правда? – Zargold

+0

Я пробовал это null = Правда, это не имеет никакого значения – thisisms

ответ

3

Возможно, вам стоит попробовать установить поле picture в качестве required=False в свой сериализатор.

Так как вы определили image поле без какого-либо параметра required, ФПИ приобретает значение по умолчанию required т.е. True. Если вы не укажете это поле во время десериализации, DRF поднимет ошибку, в которой требуется поле image.

От docs:

Обычно ошибка будет повышена, если поле не входит в комплект во десериализации. Установите значение false, если это поле не обязательно должно быть присутствует во время десериализации.

По умолчанию True.

class UserProfileSerializer(serializers.ModelSerializer): 
    picture = serializers.ImageField(required=False, max_length=None, 
            allow_empty_file=True, use_url=True) 
+1

Я обновил мою restframework до решения 3.3 проблемы. Спасибо за вашу помощь. – thisisms

+1

'extra_kwargs = {'picture': {'required': False}}' также возможно, как это –

Смежные вопросы