我正在使用django-tastypie来暴露django模型。但是我在发布这个资源时遇到了一些问题。似乎tastypie不喜欢我在'id'字段之外使用另一个字段作为我的主键。
以下是我看到的错误:
"error_message": "Reverse for 'api_dispatch_detail' with arguments '()' and keyword arguments '{'pk': u'VMware-42 30 21 91 31 77 1b 8a-75 c1 4f ab 70 d9 99 a6', 'api_name': 'v1', 'resource_name': 'system'}' not found.",
我的模特:
class System(models.Model):
selinux = models.CharField(max_length=255)
serialnumber = models.CharField(primary_key=True, max_length=255)
signer = models.CharField(max_length=255)
tsm_pvu = models.CharField(max_length=255)
我的资源:
class SystemResource(ModelResource):
class Meta:
queryset = System.objects.all()
authentication = ApiKeyAuthentication()
authorization = DjangoAuthorization()
resource_name = 'system'
答案 0 :(得分:1)
我最近遇到了类似的问题。事实证明,原因不是主键是非ID字段,而是主键包括非字母数字字符(例如空格)。似乎在你的例子中可能就是这种情况。
我发现this patch尚未与主干合并,这为我解决了问题。需要在tastypie 0.9.11中修补的行是文件tastypie / resources.py中(方法base_urls的)方法的第283-284行。希望有所帮助。