models.py
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 :(得分:5)
也许您应该尝试在序列化程序中将字段picture
设置为required=False
。
由于您已定义image
字段而没有任何required
参数,因此DRF假设默认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)