这是我的代码:
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保存功能访问每个项目。我怎么能这样做?
例如,我想在保存发布者时将文字附加到与此发布商关联的每个项目的code
字段。
修改的: 当我尝试实现第一个解决方案时,我收到错误“'Publisher'对象没有属性'item_set'”。显然我无法以这种方式访问它。还有其他线索吗?
编辑2 : 我发现发生的问题是当我创建一个新的Publisher对象时,我添加了内联项。因此,在尝试保存发布者并访问项目时,它们不存在。
有什么方法吗?!
答案 0 :(得分:12)
您应该可以执行以下操作:
def save(self, **kwargs):
super(Publisher, self).save(**kwargs)
for item in self.item_set.all():
item.code = "%s - whatever" % item.code
我真的不喜欢你在这里做的事情,这不是将Item
与Publisher
联系起来的好方法。你到底想要的是什么?