我最近開始使用django-tastypie,並且非常喜歡這個框架。說到這一點,我得到了一個關於POST的OneToOne關係模型的問題,並花費了大量的時間,但不知道缺少什麼。下面是模式和資源碼 -Django Tastypie OneToOne關係的POST請求
型號
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)
.....
資源
QuestionAnswerResource -
class QuestionAnswerResource(ModelResource):
question = fields.ForeignKey('myapp.api.QuestionResource', 'question')
class Meta:
queryset = QuestionAnswer.objects.all()
resource_name='questionanswer'
QuestionResource -
class QuestionResource(ModelResource):
questionanswer = fields.OneToOneField('myapp.api.QuestionAnswerResource', 'questionanswer', full=True)
class Meta:
queryset = Question.objects.all()
resource_name = 'question'
通過以上的設置,我得到與問題實例GET與答辯屬性沿着正確的響應。然而,當我嘗試發佈的數據保存在這一個問題/答案失敗與下面的錯誤 -
「{」 ERROR_MESSAGE「:‘’,‘追蹤’:」回溯(最近通話 最後一個): \ n \ n文件 \「/ Library/Python/2.7/site-packages/tastypie/resources.py \」,第192行, ................... .................................................. ................. line 636,in hydrate \ n
value = super(ToOneField,self).hydrate(bundle)\ n \ n文件 \「/ Library/Python/2.7/site-packages/tastypie/fields.py \「,第154行,在 hydrate \ n elif self.attribute和getattr(bundle.obj, self.attribute,None):\ n \ n F ile \「Library/Python/2.7/site-packages/Django-1.4.1-py2.7.egg/django/db/models/fields/related.py \」,行343,在得到 \ n提高 self.field.rel.to.DoesNotExist \ n \ nDoesNotExist \ n 「}」
有人能指出我錯過了什麼?
這發生在我身上時,我忘了補充資源URI通話。 –