我有以下资源:
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
请求时,会得到如下列表:
注意响应中的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
)?在
我终于成功了。问题出在
RefPredicate
模型定义中:我误解了
primary_key
参数,意思是说segment
列应该指向TestSegment
模型的主键。但Django将其理解为“createsegment_id
列,它是一个主键(只要它是一对一的关系),并指向TestSegment
的主键”。在因此,tastype看到了一个主键
segment
,而不是id
,并返回了它。在相关问题 更多 >
编程相关推荐