在instructions in the tastypie cookbook之后,我更改了用于访问我的“作业”模型的URL,以供UUID而不是PK引用:
class JobResource(ModelResource):
owner = fields.ForeignKey('job.api.UserResource', 'user')
inputs = fields.ManyToManyField('job.api.JobInputResource', 'inputs', full=True)
outputs = fields.ManyToManyField('job.api.JobOutputResource', 'outputs', full=True)
class Meta:
queryset = Job.objects.all()
def prepend_urls(self):
return [
url(r"^(?P<resource_name>%s)/(?P<guid>[\w\d_.-]+)/$" % self._meta.resource_name, self.wrap_view('dispatch_detail'), name="api_dispatch_detail"),
]
但是,相关输入和对象中的resource_uri
不会反映此更改,仍会引用PK源URL。找到this issue和相应的解决提交(1367d7a45587b2af9969d16c3c641a255a8d5b8e)似乎与我的困境直接相关,但无法找到doc re:如何实际让resource_uri
更改。