我有两种模型:用户模型和配置文件模型。我正在使用用户标识作为配置文件模型的外键。在Django rest框架中返回两个不同模型中包含的数据
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE,primary_key=True)
bio = models.TextField(max_length=500, blank=True)
website = models.TextField(max_length=200, blank=True)
phoneno = models.TextField(max_length=200, blank=True)
gender = models.TextField(max_length=200, blank=True)
avatar = models.ImageField('profile picture', upload_to='images/avatar/', default='/images/avatar/blank.png')
我使用的是内置Django在用户模型包含的用户名,密码等领域...
我想创建一个串行其中我可以返回这两个配置文件的详细信息和用户模型。到目前为止,如果我使用UserSerializer而不是下面的ProfileUserCombinedSerializer,我可以返回用户的详细信息。
但是我已经创建ProfileUserCombinedSerializer,这样我可以将二者结合起来的值,到目前为止,我有以下
class UserSeralizer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('username', 'password',"email","first_name","last_name")
class ProfileUserCombinedSerializer(serializers.HyperlinkedModelSerializer):
user = ProfileSerializer()
class Meta:
model = User
fields = ('username',"user")
如何相应的剖面模型追加到查询集,这样的对应领域生物,网站等得到序列化,所以我可以查看他们在可浏览的api。
class returnProfileDetailsFromUser(generics.ListAPIView):
serializer_class = ProfileUserCombinedSerializer
def get_queryset(self):
i = self.kwargs['id']
queryset = User.objects.all()
queryset = queryset.filter(id=i)
return queryset
现在,我最终得到了以下错误:试图在串行ProfileUserCombinedSerializer
得到现场user
值时
了AttributeError的。 串行器字段可能命名错误,并且不匹配User
实例上的任何属性或密钥。 原始异常文本是:'用户'对象没有属性'用户'。
我在这里做错了什么?
工程很好,谢谢! – blaziken105