誰能解釋我為什么會收到此錯誤。
我有兩個具有 OnetoOne 關系的 模型User和Profile 。模型.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)
這是serializer.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'])
uj5u.com熱心網友回復:
您以錯誤的方式撰寫序列化程式。組態檔模型有用戶列和用戶表沒有組態檔列,并且在針對用戶創建組態檔模型時使用 OneToOne 提交的一件事。因為一個組態檔可以包含一個用戶。
models.py
class User(AbstractBaseUser):
phone_number = models.IntegerField(unique=True, verbose_name='phone
number')
email = models.EmailField()
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,)
first_name = models.CharField(max_length=25)
last_name = models.CharField(max_length=25)
serializers.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ["id", "phone_number", "email"]
class ProfileSerializer(serializers.ModelSerializer):
user = UserSerializer()
class Meta:
model = Profile
fields =["first_name", "last_name", "user"]
有關嵌套序列化程式的更多資訊,請參閱官方檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/533583.html
