Django foreign key access in save() function
以下是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | class Publisher(models.Model): name = models.CharField( max_length = 200, unique = True, ) url = models.URLField() def __unicode__(self): return self.name def save(self): pass class Item(models.Model): publisher = models.ForeignKey(Publisher) name = models.CharField( max_length = 200, ) code = models.CharField( max_length = 10, ) def __unicode__(self): return self.name |
我希望能够从Publisher保存功能访问每个项目。我该怎么做?
例如,我想在保存Publisher时将文本附加到与此Publisher关联的每个项目的"代码"字段中。
编辑:当我尝试实现第一个解决方案时,我得到错误"'publisher'对象没有属性'item_set'"。很明显我不能那样做。还有其他线索吗?
编辑2:我发现出现的问题是,当我创建一个新的发布者对象时,我会以内联方式添加项目。因此,当试图保存发布者并访问项目时,它们不存在。
有办法解决这个问题吗?!
您应该能够执行以下操作:
1 2 3 4 5 | def save(self, **kwargs): super(Publisher, self).save(**kwargs) for item in self.item_set.all(): item.code ="%s - whatever" % item.code |
我真的不喜欢你在这里所做的,这不是一个很好的方法把