【发布时间】:2015-11-22 21:40:35
【问题描述】:
我正在尝试使用 OneToOneField 扩展用户模型,以便可以向用户添加更多字段:
class Userattribs(models.Model):
user = models.OneToOneField(User)
passcode = models.IntegerField(default=0)
# about user
organisation = models.CharField(max_length=100, null=True)
description = models.CharField(max_length=300, null=True)
我还有以下模型序列化器:
class UserattribsSerializer(serializers.ModelSerializer):
class Meta:
model = Userattribs
fields = ('organisation', 'description')
class UserSerializer(serializers.ModelSerializer):
userattribs = UserattribsSerializer(required=True)
class Meta:
model = User
fields =('id', 'username', 'first_name', 'last_name', 'email', 'userattribs')
我遇到的问题是用户的序列化,在 json 响应中不包含“userattribs”。我花了几个小时在谷歌上搜索并敲打我的头。如果你能帮助我,我将永远感激不尽。
提前致谢!
我已添加视图。我注意到的一件奇怪的事情是,当我查询(使用 UserList)所有数据时,我会得到 Userattribs。但是,当我检索单个项目时,我没有得到 Userattribs
###################################################
### Views #########################################
###################################################
class UserList(generics.ListCreateAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = (permissions.AllowAny,)
class UserDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_classes = (access_permission,)
【问题讨论】:
-
请添加您的
urls.py和UserDetailview 的输出。这个access_permission变量是什么?注释 permission_classes 以进行调试
标签: python django django-models django-rest-framework