DRF的ModelSerializers中自定义了字段就必须重写create方法
Posted 大聪明Smart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DRF的ModelSerializers中自定义了字段就必须重写create方法相关的知识,希望对你有一定的参考价值。
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方法
以上是关于DRF的ModelSerializers中自定义了字段就必须重写create方法的主要内容,如果未能解决你的问题,请参考以下文章