Django在更新记录时更新日期字段时出现问题

vsnjm48y  于 2022-12-24  发布在  Go
关注(0)|答案(1)|浏览(139)

当我试图更新一个名为date_updated的字段时遇到了一个问题。我对该字段的意图是,每次更新一条记录时,该记录的date_updated字段都应该根据更改的日期进行更新。该字段和另一个字段位于基类中,然后在每个模型中继承该类以重复这些字段。

class Base(models.Model):
    ...
    date_updated = models.DateTimeField(auto_now=True)

    def save(self, *args, **kwargs):
        self.date_updated = django.timezone.now()
        super(Base, self).save(*args, **kwargs)

    class Meta:
        abstract = True

class OtherClass(Base):
    ...

我的意图是,当我更新OtherClass中的任何记录时,它的date_updated字段也将被更新。
我也尝试过在OtherClass中添加对保存方法的overwrite,但是结果是一样的,在我做了更改之后,日期仍然保留。
我正在使用.update(**data_to_update)进行更改

kupeojn6

kupeojn61#

当我只想更新updated_on(datetime)列时,我这样做了:这可能会帮助您:

from datetime import datetime

def get_current_datetime_str():
    now = datetime.now()
    return now.strftime("%Y-%m-%d %H:%M:%S")
    
class ModelName(models.Model):
    date_updated=models.CharField(max_length=100) #whatever your field is
    ...
    def __str__(self):
        return self.name

继续并将其写在下面defstr(self):

def save(self, *args, **kwargs):
    self.date_updated = get_current_datetime_str()
    super().save(*args, **kwargs)

相关问题