2012-01-14 2 views
1

django-tastypie를 사용하여 장고 모델을 노출하고 있습니다. 그러나이 리소스에 게시하는 데 몇 가지 문제가 있습니다. tastypie는 'id'필드 외에도 다른 기본 필드를 사용하고있는 것을 좋아하지 않습니다.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' 

답변

1

내가 최근에 비슷한 문제가 있었다 여기

은 제가 보는 오류이다. 그 원인은 기본 키가 비 ID 필드가 아니라 기본 키가 영숫자가 아닌 문자 (예 : 공백)를 포함한다는 것이 었습니다. 그것은 당신의 예에서도 마찬가지 일 수 있습니다.

나는 트렁크와 아직 병합되지 않았고, 나를 위해 문제를 해결 한 this patch을 찾았습니다. tastypie 0.9.11에서 패치가 필요한 라인은 tastypie/resources.py 파일의 (base_urls 메소드의) 라인 283-284입니다. 희망이 도움이됩니다.

+0

+1 패치를 제공해 주셔서 감사합니다. –

관련 문제