Я недавно начал django-tastypie и до сих пор люблю фреймворк. Сказав это, я столкнулся с проблемой POST для отношения OneToOne к модели и потратил много времени, но не мог понять, чего не хватает. Вот код модели и ресурса -
Модель
class Question(TimeStampedModel):
question_title = models.CharField("question title", max_length=100)
question_desc = models.TextField("question description", max_length=1000)
.......
Вторая модель имеет отношение OneToOne к Вопросу -
class QuestionAnswer(TimeStampedModel):
question = models.OneToOneField(Question)
.....
Ресурс
ВопросОтветРесурс -
class QuestionAnswerResource(ModelResource):
question = fields.ForeignKey('myapp.api.QuestionResource', 'question')
class Meta:
queryset = QuestionAnswer.objects.all()
resource_name='questionanswer'
ВопросРесурс -
class QuestionResource(ModelResource):
questionanswer = fields.OneToOneField('myapp.api.QuestionAnswerResource', 'questionanswer', full=True)
class Meta:
queryset = Question.objects.all()
resource_name = 'question'
С приведенной выше настройкой я получаю правильный ответ на GET с экземпляром вопроса вместе с его атрибутом ответа. Однако, когда я пытаюсь отправить данные POST, чтобы сохранить вопрос/ответ на этот вопрос, происходит сбой с ошибкой ниже:
"{"error_message": "", "traceback": "Traceback (последний последний вызов):\n\n File \"/Library/Python/2.7/site-packages/tastypie/resources.py\", строка 192 , ................................................... ...................... строка 636, в гидрате\n
значение = супер (ToOneField, self).hydrate(bundle)\n\n File \"/Library/Python/2.7/site-packages/tastypie/fields.py\", строка 154, в hydr\n elif self.attribute и getattr( bundle.obj, self.attribute, None):\n\n Файл \"/Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/db/models/fields/related .py\", строка 343, в get\n поднять self.field.rel.to.DoesNotExist\n\nDoesNotExist\n"}"
Может ли кто-нибудь указать, что мне не хватает?