【发布时间】:2015-06-15 21:01:31
【问题描述】:
我有以下两种型号。它们通过从 TextMission 表到 Mission 表的 OneToOneField 关系“任务”链接。
#Models.py
class Mission(models.Model):
name = models.CharField(max_length = 40)
class TextMission(models.Model):
mission = models.OneToOneField(Mission, related_name="text_mission", primary_key = True)
有时任务会有相应的 TextMission,但并非总是如此。当我在 shell 中创建/更新对象时,我能够让一切正常工作,但 TastyPie 仅在存在 TextMission 时正确处理请求(PUTing to /mission/{id}/)。当 text_mission=null 时,它会出错。
我的美味派配置:
class MissionResource(ModelResource):
text_mission = fields.ToOneField('path.to.TextMissionResource', attribute='text_mission', related_name='mission', full = True, null = True)
class TextMissionResource(ModelResource):
mission = fields.ToOneField(MissionResource, attribute='mission', related_name='text_mission')
当将以下 JSON 发送回服务器时(与我收到的完全相同的 JSON),我得到一个 ValueError:
失败
{ "name": "TEST", "id": "1", "text_mission": null, "resource_uri": "/api/web/mission/1/", } *** ValueError:无法分配无:“Mission.text_mission”不允许空值。
成功
{ “名称”:“TEST”,“id”:“1”,“text_mission”:{“id”:“1”,“resource_uri”:“/api/web/text_mission/1/”}, “资源_uri”: "/api/web/mission/1/", }
我的代码中是否有什么地方做错了,或者它不应该以这种方式工作。我在这里不知所措。
我正在运行 TastyPie 0.9.11。
【问题讨论】: