我的模型中有Datefield,它在创建和更新时应该保存哪些属性?
models.py
class Mymodel(models.Model):
edited = models.DateField(*what should be the attributes here*)发布于 2022-04-20 07:18:06
添加两个属性,一个是created_at,另一个是edited_at
created_at = models.DateField(auto_now_add=True)
edited_at = models.DateField(auto_now=True)每次保存对象时,auto_now ->都会自动将字段设置为现在。
当第一次创建对象时,auto_now_add ->会自动将字段设置为现在。
有关详细信息,见参考资料
发布于 2022-04-20 07:19:42
你可以读这。
class Mymodel(models.Model):
edited = models.DateField(auto_now_add=True)auto_now_add属性的True值将在为MyModel创建该对象时添加当前日期
然后让我们看看一个例子:
在你的views.py里
data = MyModel.objects.get(id=some_id)
data.some_field1 = 'some-value'
data.some_field2 = 'some-value'
data.edited = datetime.date.today()
data.save() 你必须这么做
发布于 2022-04-20 08:01:03
我们可以使用自定义保存方法,因为auto_now或auto_now_add不会显示在管理面板中。下面是同样的例子,通过这种方法,我们实际上可以跟踪创建和更新它的时间。
from django.utils import timezone
class User(models.Model):
created = models.DateTimeField(editable=False)
edited = models.DateTimeField()
def save(self, *args, **kwargs):
if not self.id:
self.created = timezone.now()
self.edited = timezone.now()
return super(User, self).save(*args, **kwargs)https://stackoverflow.com/questions/71935530
复制相似问题