繁体   English   中英

Django Deliciouspie 1-1 related_name

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM