Django REST Framework的序列化器字段required=false

12 浏览
0 Comments

Django REST Framework的序列化器字段required=false

根据文档:

read_only

将其设置为True以确保在序列化表示时使用该字段,但在反序列化期间更新实例时不使用。

默认为False。

required

通常,在反序列化过程中如果未提供字段,将会引发错误。如果在反序列化过程中不需要该字段存在,则设置为false。

默认为True。

所以我有一个模型,其中有一个字段是不可为空的,但我希望在pre_save方法中填充它,所以我在序列化器中将该字段设置为required=False,但似乎不起作用。在保存记录时仍然出现错误。

class FavoriteListSerializer(serializers.ModelSerializer):
    owner = serializers.IntegerField(required=False)
    class Meta:
        model = models.FavoriteList

更新:

我在ViewSet中添加了serializer_class = serializers.FavoriteListSerializer,现在不再获得此字段是必需的的错误,我认为它已经通过了验证,但是现在我得到了此字段不能为空的错误。我已经检查了pre_save方法没有被执行,有什么想法吗?

0