谁能解释一下我为什么会得到这个错误。
我有两个具有一对一关系的模型 User 和 Profile。models.py
class User(AbstractBaseUser):
phone_number = models.IntegerField(unique=True, verbose_name='phone number')
email = models.EmailField()
class Profile(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,)
first_name = models.CharField(max_length=25)
last_name = models.CharField(max_length=25)
这是序列化程序.py
class ProfileSerializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields =["first_name", "last_name"]
class UserSerializer(serializers.ModelSerializer):
profile = ProfileSerializer()
class Meta:
model = User
fields = ["id", "phone_number", "email", "profile",]
查看次数.py
class UserDetailsView(generics.RetrieveUpdateAPIView):
serializer_class = UserSerializer
def get_queryset(self):
return User.objects.filter(pk=self.kwargs['pk'])
1条答案
按热度按时间e5nqia271#
您以错误的方式编写了序列化程序。配置文件模型具有用户列,而用户表没有配置文件列,并且在针对用户创建配置文件模型时只有一个属性使用OneToOne字段。因为一个配置文件可以包含一个用户。
有关嵌套序列化程序的更多信息,请参阅官方文档