在 Django 中发出发布请求时,我收到“create()”尚未实现的错误,而实际上我确实在序列化程序文件中实现了它
from rest_framework import serializers
from people.models import People
class PeopleSerializer(serializers.Serializer):
pk = serializers.IntegerField(read_only=True)
name = serializers.CharField(max_length=200)
favoriteCity = serializers.CharField(max_length=200)
def create(self, validated_data):
return People.objects.create(**validated_data)
def update(self, instance, validated_data):
instance.name = validated_data.get('name', instance.name)
instance.favoriteCity = validated_data.get(
'favoriteCity',instance.favoriteCity)
instance.save()
return instance()
显然创建方法已经实现,我不明白为什么我会收到NotImplementedError
在您的序列化器类中,继承自 ModelSerializer 而不是 Serializer 类,因为后者不会隐式调用 create() 方法。
class PeopleSerializer(serializers.ModelSerializer):
上述更改将完成您的工作!
请检查您的缩进,“创建”函数应该位于该 Serializer 类内,如下例所示。
class StudentSerializer(serializers.Serializer):
name = serializers.CharField(max_length=111)
roll = serializers.IntegerField()
city = serializers.CharField(max_length=722)
def create(self,validated_data):
return Student.objects.create(**validated_data)
哥们,我面临着同样的问题,你能指导一下你如何解决这个错误吗
当您尝试使用模型序列化器创建特定模型的对象时,检查数据内的键是否与模型属性完全匹配
请检查您的缩进,“创建”函数应该位于该序列化器类中希望它能够工作。