Tastypie не может отправить с первичным ключом без идентификатора - PullRequest
1 голос
/ 15 января 2012

Я использую 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'

1 Ответ

1 голос
/ 13 февраля 2012

У меня недавно была похожая проблема. Оказалось, что причина была не в том, что первичный ключ был полем без идентификатора, а в том, что первичный ключ содержал не буквенно-цифровые символы (например, пробелы). Кажется, что это может иметь место и в вашем примере.

Я нашел этот патч , который еще не был объединен с транком и который решил проблему для меня. Строки, которые должны быть исправлены в tastypie 0.9.11, - это строки 283-284 (метода base_urls) в файле tastypie / resources.py. Надеюсь, это поможет.

...