related-name:链接对象而不是url?

时间:2013-06-10 13:02:13

标签: django rest

我正在使用Django。 这是我的.json文件:

{
title: "foo",
id: 4,
taskhistories: [
"http://localhost:8000/taskhistories/33/",
"http://localhost:8000/taskhistories/34/"
],
url: "http://localhost:8000/tasks/4/"
}

我的任务有一对多的任务历史。问题是,我在TaskHistory模型的定义中使用related-name将其显示在我的API的tasks目录中:

class TaskHistory(models.Model):
    task = models.ForeignKey(Task, related_name='taskhistories')

但是,在API中,它不会显示taskhistory本身,而是显示taskhistory的API页面的url。如何在我的任务API页面中直接显示我的任务历史列表,而不仅仅是网址?

编辑:添加序列化程序:

class TaskSerializer(serializers.HyperlinkedModelSerializer):
    projectname = serializers.Field(source='project.name')
    projectid = serializers.Field(source='project.id')

    class Meta:
        model = Task
        fields = ('title', 'description', 'status', 'created_on', 'duration',
                  'id', 'projectid', 'projectname', 'taskhistories')

1 个答案:

答案 0 :(得分:0)

添加TaskSerializer:

taskhistories = serializers.RelatedField(many=True)

将使用TaskHistory Model的 unicode 方法进行显示。如需进一步参考,请参阅here

我想我回答了你的问题。