所以我只是熟悉django和django-rest-framework。 我有一个拥有所有者的Jobs模型,我想将用户拥有的作业列表添加到用户端点。
我尝试这样做,因为django rest框架的教程说:
class UserSerializer(serializers.ModelSerializer):
jobs = serializers.PrimaryKeyRelatedField(many = True, queryset = Job.objects.all())
class Meta:
model = User
fields = ('id', 'username', 'jobs')
但出于某种原因,当我想查看用户时,我接受了 / users /的AttributeError “用户”对象没有属性“作业”
关于PrimareyKeyRelatedField的文档看起来就像这样。我可能需要对用户模型做些什么吗?
以下内容有效:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id', 'username', 'job_set')
但我不喜欢这个解决方案,因为我希望能够更好地控制列表的呈现方式(可能会更改id以完成json对象或将attribut名称从'job_set'重命名为'job)
我现在真的不知道我在监督什么......
答案 0 :(得分:0)
你可以做两件事,
jobs = serializers.PrimaryKeyRelatedField(many = True, source='job_set' queryset = Job.objects.all())
或
将related_name='jobs'
属性设置为用户关系字段。