tastype不返回id字段

2024-10-02 02:41:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下资源:

class RefSegmentResource(ModelResource):
  class Meta(AuthMeta): # AuthMeta has only authorization + authentification
    queryset = TestSegment.objects.all()
    resource_name = 'refsegment'
    always_return_data = True


class RefPredicateResource(ModelResource):
  result = fields.ToOneField('hmeant.resources.SRLResultResource', 'result')
  token_indices = fields.CharField(attribute='token_indices')
  segment = fields.ToOneField('hmeant.resources.RefSegmentResource', 'segment')

  class Meta(AuthMeta):
    queryset = RefPredicate.objects.all()
    resource_name = 'refpredicate'
    always_return_data = True

当我对RefSegmentResource执行GET请求时,会得到如下列表:

^{pr2}$

注意响应中的id字段。但是当我对RefPredicateResource执行GET请求时,我不会将其作为字段接收:

{
"meta": {
  "limit": 20,
  "next": null,
  "offset": 0,
  "previous": null,
  "total_count": 2
},
"objects": [
{
    "resource_uri": "/api/demo/refpredicate/1/",
    "result": "/api/demo/iteration/1/",
    "segment": "/api/demo/refsegment/1/",
    "token_indices": "1,2,3"
}, ...

如何配置资源以使其返回主键(id)?在


Tags: tokenapifieldsobjectsdemosegment资源result
1条回答
网友
1楼 · 发布于 2024-10-02 02:41:16

我终于成功了。问题出在RefPredicate模型定义中:

class RefPredicate(Label):
   segment = models.OneToOneField(TestSegment, primary_key=True)

我误解了primary_key参数,意思是说segment列应该指向TestSegment模型的主键。但Django将其理解为“createsegment_id列,它是一个主键(只要它是一对一的关系),并指向TestSegment的主键”。在

因此,tastype看到了一个主键segment,而不是id,并返回了它。在

相关问题 更多 >

    热门问题