0

我有两个模型,一个项目和一个动作:

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)

当一个项目被标记为完成时,我希望它的所有操作也被标记为完成。

我正在尝试在项目的保存方法中执行此操作:

    def save(self, **kw):
        self.last_modified = datetime.today()
        self.action.all().update(complete=True)

        super(Project, self).save(**kw)

我被困在上面的第三行。我不太确定如何设置与该项目相关的所有操作以完成。

4

2 回答 2

1

你试过钩子系统吗?

https://www.djangoproject.com/documentation/0_91/models/save_delete_hooks/

我认为这就是您要寻找的东西 ;-)

于 2012-10-22T15:28:13.180 回答
0

在保存方法中使用...

Action.objects.filter(project = self).update(complete=True)
于 2012-10-22T15:27:16.573 回答