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方法