每当用户更改数据时,如何更新 "last_updated" 字段
How can I update "last_updated" field, whenever user changes data
我正在尝试在 Django 中创建自定义用户模型并添加附加字段“last_updated”,该字段应该在用户进行更改或保存新数据时更新日期和时间。
class User(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
photo = models.ImageField(upload_to='avatars/', null=True, blank=True)
last_updated = models.DateTimeField(null=True, blank=True) #defining field in the model.
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
def __str__(self):
return self.email
您是否尝试过重写用户的保存方法:
from datetime import datetime
class User(AbstractUser):
# rest of code
def save(self, *args, **kwargs):
self.last_update = datetime.now()
super(User, self).save(*args, **kwargs)
使用auto_now=True
不是更容易吗?
因此您的模型可能如下所示:
class User(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
photo = models.ImageField(upload_to='avatars/', null=True, blank=True)
last_updated = models.DateTimeField(auto_now=True) #defining field in the model.
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
def __str__(self):
return self.email
这将帮助您减少代码,并使用 Django 的内置功能。
我正在尝试在 Django 中创建自定义用户模型并添加附加字段“last_updated”,该字段应该在用户进行更改或保存新数据时更新日期和时间。
class User(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
photo = models.ImageField(upload_to='avatars/', null=True, blank=True)
last_updated = models.DateTimeField(null=True, blank=True) #defining field in the model.
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
def __str__(self):
return self.email
您是否尝试过重写用户的保存方法:
from datetime import datetime
class User(AbstractUser):
# rest of code
def save(self, *args, **kwargs):
self.last_update = datetime.now()
super(User, self).save(*args, **kwargs)
使用auto_now=True
不是更容易吗?
因此您的模型可能如下所示:
class User(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
photo = models.ImageField(upload_to='avatars/', null=True, blank=True)
last_updated = models.DateTimeField(auto_now=True) #defining field in the model.
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
def __str__(self):
return self.email
这将帮助您减少代码,并使用 Django 的内置功能。