[英]Django Tastypie 1-1 related_name
我对在django tastypie中使用related_name的正确方法感到困惑。
这是我的代码说明。
在models.py中
class Item:
#some fields
class ItemAddOn:
item = models.ForeignKey(Item)
在api.py中
class ItemResource(ModelResource):
itemAddOn = fields.ToOneField('api.ItemAddOnResource',
'itemAddOn',related_name="item")
class Meta:
#General Tasypie Meta code
class ItemAddOnResource(ModelResource):
item = fields.ToOneField(ItemResource, 'item', related_name='itemAddOn')
class Meta:
#General Tasypie Meta code
我基本上想为ItemAddOnResource创建一个帖子。 创建该帖子时,我希望它自动与该项目关联。 但是使用此代码,即使我为具有特定项目ID的ItemAddOnResource创建帖子,ItemResource中的字段仍为null。
好吧,我发现了这个问题,可能会对其他人有所帮助。
由于这是1-1关系,因此我不应该一开始就使用ForeignKey。 这样就可以解决问题。
models.py:
class Item:
#some fields
class ItemAddOn:
item = models.OneToOneField(Item)
api.py:
class ItemResource(ModelResource):
itemAddOn = fields.ToOneField('api.ItemAddOnResource',
'itemAddOn',related_name="item")
class Meta:
#General Tastypie Meta code
class ItemAddOnResource(ModelResource):
item = fields.ToOneField(ItemResource, 'item', related_name='itemAddOn')
class Meta:
#General Tastypie Meta code
这将允许帖子以任何一种方式发生,ItemResource中的帖子将创建一个新的itemAddOn,而itemAddOn中的帖子将其与正确的商品相关联。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.