我最近开始使用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通话。 –