0

我是 django、python 和 sweetpie 的新手。我创建了一个 API,其中我有很多资源,每个资源都有一些其他相关的资源。当我调用特定资源时,我也想获取相关的对象。为此,在美味派模型资源中,我使用 ToOneField 和 ToManyField 使用 _set 和 lambda 函数连接了所有资源。但现在的问题是,如果我调用顶级父资源列表,它会获取完整的数据库并将其作为响应返回。例如,我有一个主题资源、一个问题资源和答案资源,其中问题与主题相关,答案与问题相关。如果我请求可用的主题实例,它会返回所有主题、与每个主题相关的所有问题以及与每个问题相关的所有答案。如果我发送对单个资源或详细视图的请求,我想这样做,那么它应该返回相关对象。对于 list 方法,它应该只返回该特定模型资源的对象 ....

告诉我,伙计们,我该怎么做

4

1 回答 1

2

use_in您可以使用Api 字段的参数完成您想要的操作。它看起来像:

related_fiedl1 = ToOneField(..., use_in='detail')
related_fiedl2 = ToManyField(..., use_in='detail')

您可以通过传递一个可调用对象在更复杂的场景中使用它(例如,如果请求中存在参数,则显示一个字段)。

另一件事不是您所要求的,但可能更一致的是使用full_listandfull_detail参数,因此关系字段将在列表中显示资源 url,并在详细信息中显示完整的资源表示。

于 2013-08-06T12:39:48.707 回答