用户登录时保存Django模型

时间:2018-12-02 08:26:25

标签: django django-models

我有一个这样的模型:

class Project (models.Model):
    ''' Defines a project '''
    user = models.ForeignKey(
        Profile,
        on_delete = models.CASCADE
    )
    ...
    name = models.CharField (
        verbose_name = _('Project Title'),
        max_length = 100
    )

    dt_created = models.DateTimeField(editable = False)
    dt_lastmod = models.DateTimeField(blank=True, null=True)

    objects = ProjectManager()
    tags = TaggableManager()

    class Meta:
        ordering = ["-id"]

    def __str__(self):
        return u'%s' % (self.name)

    def save(self, *args, **kwargs):
        if not self.id:
          self.dt_created = timezone.now()
        self.dt_lastmod = timezone.now()

        super(Project, self).save(*args, **kwargs)

    def get_absolute_url(self):
        return reverse('view-project', kwargs={'slug': self.slug})

通过user字段链接到模型的“用户”登录后,将保存模型并重置dt_lastmod。

为什么?如何停止这种行为?

1 个答案:

答案 0 :(得分:0)

回答这个问题以将其关闭。

问题是我在其他地方设置了一个信号,该信号正在加载和保存的用户身上(因为last_login正在更改),并且正在对此进行一些处理,而仅当特定字段发生更改时才需要处理。