0

プロジェクトとアクションの 2 つのモデルがあります。

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)

プロジェクトが完了としてマークされたら、そのすべてのアクションも完了としてマークされるようにしたいと思います。

私はプロジェクトの save メソッドでこれをやろうとしています:

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

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

上記の 3 行目に行き詰まっています。このプロジェクトに関連するすべてのアクションを完了するように設定する方法がよくわかりません。

4

2 に答える 2

1

フックシステムを試しましたか?

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

私はそれがあなたが探しているものだと思います;-)

于 2012-10-22T15:28:13.180 に答える
0

saveメソッド内で使用...

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