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。
您可以阅读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)
我的模型中有 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。
您可以阅读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)