【发布时间】:2016-10-06 21:13:02
【问题描述】:
我想在为 Django 用户更改 is_active 字段时专门运行一些代码,类似于 save 方法对其他模型的工作方式:
class Foo(models.Model):
...
def save(self, *args, **kwargs):
if self.pk is not None:
orig = Foo.objects.get(pk=self.pk)
if orig.is_active != self.is_active:
# code goes here
这可以通过与用户模型一对一关系的另一个模型来完成吗?比如:
class Bar(models.Model):
owner = models.OneToOneField(User, on_save=?)
...
我想我可以在相关模型上复制 is_active 字段,然后在保存相关模型时在 User 上设置 is_active 字段。但这似乎有点混乱。
【问题讨论】:
-
你检查过signals.pre_save吗?