首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Datefield属性

Django Datefield属性
EN

Stack Overflow用户
提问于 2022-04-20 07:10:30
回答 3查看 126关注 0票数 0

我的模型中有Datefield,它在创建和更新时应该保存哪些属性?

models.py

代码语言:javascript
复制
class Mymodel(models.Model):
    edited = models.DateField(*what should be the attributes here*)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-04-20 07:18:06

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

代码语言:javascript
复制
created_at = models.DateField(auto_now_add=True)
edited_at = models.DateField(auto_now=True)

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

当第一次创建对象时,auto_now_add ->会自动将字段设置为现在。

有关详细信息,见参考资料

票数 3
EN

Stack Overflow用户

发布于 2022-04-20 07:19:42

你可以读

代码语言:javascript
复制
class Mymodel(models.Model):
    edited = models.DateField(auto_now_add=True)

auto_now_add属性的True值将在为MyModel创建该对象时添加当前日期

然后让我们看看一个例子:

在你的views.py

代码语言:javascript
复制
data = MyModel.objects.get(id=some_id) 
data.some_field1 = 'some-value' 
data.some_field2 = 'some-value' 
data.edited = datetime.date.today() 
data.save() 

你必须这么做

票数 0
EN

Stack Overflow用户

发布于 2022-04-20 08:01:03

我们可以使用自定义保存方法,因为auto_now或auto_now_add不会显示在管理面板中。下面是同样的例子,通过这种方法,我们实际上可以跟踪创建和更新它的时间。

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71935530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档