0

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

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

我有具有一对多任务历史的任务。问题是,我在 TaskHistory 模型的定义中使用了相关名称,以将其显示在我的 API 的任务目录中:

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

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

编辑:添加序列化程序:

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')
4

1 回答 1

0

添加任务序列化器:

taskhistories = serializers.RelatedField(many=True)

这将使用您的 TaskHistory 模型的unicode方法进行显示。有关更多参考,请参见此处

我想我回答了你的问题。

于 2014-04-15T19:28:27.287 回答