1

我正在使用 django-tastypie 来公开 django 模型。但是,我在发布到此资源时遇到了一些问题。似乎美味派不喜欢我使用除“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'
4

1 回答 1

1

我最近遇到了类似的问题。事实证明,原因不是主键是非 ID 字段,而是主键包含非字母数字字符(例如空格)。在您的示例中似乎也可能是这种情况。

我发现这个补丁还没有与主干合并,它为我解决了这个问题。在tastepie 0.9.11 中需要修补的行是文件tastepie/resources.py 中(方法base_urls)的第283-284 行。希望有帮助。

于 2012-02-13T16:17:11.277 回答