我有两个模型,一个项目和一个动作:
class Project(models.Model):
name = models.CharField("Project Name", max_length=200, unique = True)
complete = models.BooleanField(default=False, verbose_name="Complete?")
class Action(models.Model):
name = models.CharField("Action Name", max_length=200)
project = models.ForeignKey(Project, blank=True, null=True, verbose_name="Project")
notes = models.TextField("Notes", blank=True)
complete = models.BooleanField(default=False, verbose_name="Complete?")
status = models.IntegerField("Action Status", choices = STATUS, default=0)
当项目被标记为完成时,我希望所有的动作都被标记为完成。
我正在尝试在Project的保存方法中执行此操作:
def save(self, **kw):
self.last_modified = datetime.today()
self.action.all().update(complete=True)
super(Project, self).save(**kw)
我被困在上面的第三行。我不太确定如何设置与此项目相关的所有操作来完成。
答案 0 :(得分:1)
您是否尝试过挂钩系统?
https://www.djangoproject.com/documentation/0_91/models/save_delete_hooks/
我认为这就是你要找的东西; - )
答案 1 :(得分:0)
在save方法中使用...
Action.objects.filter(project = self).update(complete=True)