在django w djange-rest-framework中为序列化程序输出添加一组相关模型

时间:2016-10-27 12:25:15

标签: django django-rest-framework

所以我只是熟悉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)

我现在真的不知道我在监督什么......

1 个答案:

答案 0 :(得分:0)

你可以做两件事,

jobs = serializers.PrimaryKeyRelatedField(many = True, source='job_set' queryset = Job.objects.all())

related_name='jobs'属性设置为用户关系字段。