不忘初心,
牢记使命。

DRF的ModelSerializers中自定义了字段就必须重写create方法

2021-05-12 大聪明 0评论 181 0喜欢

DRF在写ModelSerializers时,如果你自定义了字段那么必须重写create方法,不然在ModelViewset中调用create方法时会报异常。

class CommentModelSerializers(serializers.ModelSerializer):
    username = serializers.CharField(source='username.username', required=True)

    class Meta:
        model = models.Comment
        fields = ['id', 'content', 'add_time', 'article','username', 'pid']

    def create(self, validated_data):
        uid = validated_data.pop('username').get('username')
        username = models.UserInfo.objects.get(pk=uid)
        validated_data.update({'username': username})
        # print(validated_data)
        instance = models.Comment.objects.create(
            **validated_data
        )
        return instance

上边自定义了username字段显示,则必须重写create方法

发表评论 取消回复

电子邮件地址不会被公开。

请输入正确格式的qq邮箱
请输入以http或https开头的URL,格式如:https://libo_sober.top