Tastypie — поле вложенного ресурса не найдено

У меня есть этот код:

#api model 

class VideoResource(ModelResource):
    class Meta:
        queryset = Video.objects.all()
        include_resource_uri = False
        resource_name = 'video'
        authorization = DjangoAuthorization()

class QuestionResource(ModelResource):

    user = fields.ToOneField(UserResource,'user',full=True)
    video = fields.ForeignKey(VideoResource,'video',full=True)

    class Meta:
        queryset = Question.objects.all()
        resource_name = 'question'
        include_resource_uri = False
        authorization = DjangoAuthorization()

    def obj_create(self, bundle, request=None, **kwargs):
        import json
        temp = json.loads(request.body, object_hook=_decode_dict)
        video = Video.objects.get(pk=temp['video'])
        return super(QuestionResource, self).obj_create(bundle, request, user=request.user, video=video)

#model

class Question(models.Model):
    text = models.CharField('Question',max_length=120)
    created = models.DateTimeField(auto_now_add=True)
    enabled = models.BooleanField(default=True)
    flag = models.BooleanField(default=False)
    allow_comments = models.BooleanField(default=True)
    thumbnail_url = models.CharField(default='video.jpg',blank=True, null=True,max_length=200)

    user = models.ForeignKey(User)
    video = models.ForeignKey(Video)

    def __unicode__(self): 
        return self.text;

class Video(models.Model):
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now_add=True)
    url = models.URLField(default="")

    user = models.ForeignKey(User)

    def __unicode__(self): 
        return str(self.pk) + ' > ' + self.status

Проблема в том, что я получаю эту ошибку при отправке этого объекта:

{"video":21,"text":"sadasds"} 

В поле «видео» были переданы данные, которые не были URI, не похож на словарь и не имеет атрибута 'pk': 21.

Если я прокомментирую эту строку:

video = fields.ForeignKey(VideoResource,'video',full=True) 

Все работает нормально, но тогда я не могу получить эту информацию (видео) при запросе /api/v1/questions/

Мой вопрос:

  • Должен ли я создавать ресурсы, один для публикации, а другой для извлечения информация
  • Как создать вложенные ресурсы? Я пытался следовать примеру на Интернет http://django-tastypie.readthedocs.org/en/latest/cookbook.html#nested-resources но, как видите, почему-то не работает.

может ваши глаза помогут мне найти ошибку :) Спасибо!

7
задан Serjik 19 December 2015 в 11:30
поделиться