Django 日期字段属性

Django Datefield attributes

我的模型中有 Datefield,它在创建和更新时应该保存在其中,里面的属性应该是什么?

models.py

class Mymodel(models.Model):
    edited = models.DateField(*what should be the attributes here*)

添加两个属性,一个是created_at,一个是edited_at

created_at = models.DateField(auto_now_add=True)
edited_at = models.DateField(auto_now=True)

auto_now -> 每次保存对象时自动将字段设置为现在。

auto_now_add -> 首次创建对象时自动将字段设置为now。

详情see the reference

您可以阅读this

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() 

你必须这样做

我们可以使用自定义保存方法,因为 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)