首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Django的父模型中更新auto_now DateTimeField

在Django的父模型中更新auto_now DateTimeField时,需要确保子模型中的DateTimeField也会被更新。为了实现这一点,可以使用以下方法:

  1. 在父模型中定义一个方法,该方法将更新auto_now DateTimeField。
代码语言:python
复制
class ParentModel(models.Model):
    updated_at = models.DateTimeField(auto_now=True)

    def update_updated_at(self):
        self.updated_at = timezone.now()
        self.save(update_fields=['updated_at'])
  1. 在子模型中重写save方法,以便在保存时自动更新父模型中的DateTimeField。
代码语言:python
复制
class ChildModel(ParentModel):
    # 其他字段定义

    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        self.parentmodel.update_updated_at()

这样,在保存子模型时,父模型中的auto_now DateTimeField也会被更新。

优势:

  • 通过这种方法,可以确保在子模型中进行更改时,父模型中的DateTimeField会被自动更新,从而保持数据的一致性。

应用场景:

  • 当需要跟踪父模型中的最新更新时间时,可以使用此方法。

推荐的腾讯云相关产品:

  • 腾讯云对象存储(COS):一种用于存储和管理数据的可靠、安全、高效、低成本的云存储服务。
  • 腾讯云数据库MySQL:一种基于MySQL核心的关系型数据库服务,可以满足各种应用场景的数据存储需求。
  • 腾讯云云服务器:一种提供高性能、稳定、安全、易管理的云计算服务,可以满足不同应用场景的计算需求。

产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django 2 DateTimeField格式 程序手动赋值

需求描述 一般在数据模型设置创建时间、更新时间时候都会使用DateTimeField格式,也会设置时间自动设置,示例如下: create_time = models.DateTimeField(auto_now_add...=True, verbose_name='创建时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') 可以看到上面使用了...DateTimeField.auto_now 这个参数默认值为false,设置为true时,能够保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序手动为字段赋值;如果使用django再带admin管理器,那么该字段admin...该属性通常被用在存储“创建时间”场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法程序手动为字段赋值,admin字段也会成为只读

3K10

Django 2 DateTimeField格式 程序手动赋值

需求描述 一般在数据模型设置创建时间、更新时间时候都会使用DateTimeField格式,也会设置时间自动设置,示例如下: create_time = models.DateTimeField(auto_now_add...=True, verbose_name='创建时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') 可以看到上面使用了...DateTimeField.auto_now 这个参数默认值为false,设置为true时,能够保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序手动为字段赋值;如果使用django再带admin管理器,那么该字段admin...该属性通常被用在存储“创建时间”场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法程序手动为字段赋值,admin字段也会成为只读

69920

Django 2.1.7 模型类 - 字段类型

官方文档,关于字段类型描述非常多,如下: 模型字段定义属性 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列...参数auto_now_add和auto_now是相互排斥,组合将会发生错误。 TimeField:时间,参数同DateField。 DateTimeField:日期时间,参数同DateField。...unique:如果为True, 这个字段必须有唯一值,默认值是False。...(auto_now_add=True) # 数据加入时间 update_time = models.DateTimeField(auto_now=True) # 数据更新时间 is_delete...(auto_now=True) # 数据更新时间 is_delete = models.BooleanField(default=False) # 逻辑删除 添加了模型字段类型之后,执行数据迁移进行变更

1.2K10

使用Django实现把两个模型数据聚合在一起

Django想要把模型类聚合得到想要数据可以用F对象。 比如有模型类A和B,A和B之间有外键关联在一起,A是子表,B是表(反过来没试过。。...Admin页面显示表,编辑子表 默认情况下,ModelAdmin只允许您管理模型“本身”字段,而不是相关模型.以下方法将实现,应用类列表管理显示页面,显示字段;在编辑页面,表对子表进行编辑...应用类列表管理显示页面,显示字段 可以让Students,显示表Grades表Level字段 models.py里Students类里,写上如下代码: class Students(...使用DjangoTabularInline,可以解决这个问题,表里对子表进行编辑: 所有代码都在admin.py里写,具体如下: # 一对多关联表编辑,让表管理配置页面能同时编辑子表,以下Score...为子表(有外键所在表) class ScoreInline(admin.TabularInline): # Score 必须是models.py模型名称,大小写必须要匹配.这个模型为子表,以便可以被表编辑

1.4K20

Django 2.1.7 模型类 - 字段类型

官方文档,关于字段类型描述非常多,如下: 模型字段定义属性 django会为表创建自动增长主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后django不会再创建自动增长主键列...参数auto_now_add和auto_now是相互排斥,组合将会发生错误。 TimeField:时间,参数同DateField。 DateTimeField:日期时间,参数同DateField。...unique:如果为True, 这个字段必须有唯一值,默认值是False。...(auto_now_add=True) # 数据加入时间 update_time = models.DateTimeField(auto_now=True) # 数据更新时间 is_delete...(auto_now=True) # 数据更新时间 is_delete = models.BooleanField(default=False) # 逻辑删除 添加了模型字段类型之后,执行数据迁移进行变更

1.7K30

django-db-comments: model移行时自动生成 table,column逻辑名称

Django migrate迁移是 Django 将对模型model修改(例如增加一个字段,删除一个模型)应用至数据库架构方式。生成移行文件时,自动差分。...有参照关系app,需先生成【app】移行文件,再生成【子app】具体执行命令如下:makemigrations:生成移行文件(env) PS D:\Projects\pj> python ....\manage.py migrate # 已生成移行文件,反映到数据库生成移行文件,各app下·migrations文件夹下,例:app:master图片移行文件反映成功的话,存储Django_migrations...表图片移行后数据库表,没有表名,和列名注释图片django-db-comments:model移行时,自动作成伦理名(model コラム 論理名・コメント)django model field comment...(auto_now_add=True, verbose_name='登録日時') updated_at = models.DateTimeField(auto_now=True, verbose_name

74200

用人话讲解django之数据增删改

web 开发,最重要是数据库设计,就是 models 模型设计,简单web开发说白了就是对数据库增删改查,今天先看下数据库增加,修改,和删除吧,我们操作数据库可以使用原生sql语句,但是如果...为日期类型,auto_now_add=True该条数据创建时间,数据更新时,时间数值不变 # auto_now=True该条数据创建时间,数据更新时,时间数值也会改变 created_at...(auto_now=True, verbose_name="更新时间") # ForeignKey一对多外键,比如一个班级有多个学生,就属于一对多,外键要放到"多"那张表, # related_name...= '班级' 然后进行同步数据库操作, pycharm 打开终端(Terminal),命令行输入: ?...下面一个 views.py 文件写一个视图函数,使用 ORM 进行基本增删改操作。记得给函数配置对应 url。

38930

Django bulk_create()、update()与数据库事务效率对比分析

使用上容易遇到坑,default=datetime.now和auto_now、null和blank、save和update、bulk_create 一、django设置字段动态默认时间四种方式: from...('更新时间', auto_now=True) 1. default=datetime.now() model每次初始化,都会自动设置该字段默认值为初始化时间。...bulk_create缺点: 对于设置了自增字段,返回值不会有该字段值,如上例2user对象。...对于设置了动态默认时间字段,如设置了auto_now=True,同一批处理记录该字段时间将会相同。 四、上面的知识点使用例子 1....定义模型 from django.db import models from datetime import datetime class User(models.Model): id = models.BigAutoField

1.8K30

Django源码学习-3-Model-

Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图)编写,Template(模板)设计和Form(表单)使用。...在上一篇中介绍到 models 字段类型,会发现 Django 要生成数据库表字段,只需要在 Django 项目的 app 应用 models.py 文件编写需要数据表字段,便可以在数据库中生成数据库表... linux 虚拟机终端中找到 Django 项目路径下 manage.py 文件,进入 Python 环境,输入 python manage.py shell,便可以查看 models 源码。...(max_length=32) ctime = models.DateTimeField(auto_now=True) #每当创建一行数据时,Django就会在该行数据增加一个ctime字段...uptime = models.DateTimeField(auto_now_add=True) #当前表任何一行数据有更新时,Django就会自动更新该字段.

69730

djangoDateTimeField如何自动设置为当前时间并且能被修改 ——django日期时间字段使用

创建djangomodel时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三对象。...DateTimeField.auto_now 这个参数默认值为false,设置为true时,能够保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序手动为字段赋值;如果使用django再带admin管理器,那么该字段admin...DateTimeField.auto_now_add 这个参数默认值也为False,设置为True时,会在model对象第一次被创建时,将字段值设置为创建时时间,以后修改对象时,字段值不会再更新...该属性通常被用在存储“创建时间”场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法程序手动为字段赋值,admin字段也会成为只读。 ?

6.8K80

DRF项目(一)创建rest下面,并且进行配置,建模,往数据库添加数据

目录 1 项目的创建 1 pycharm创建django项目 下面开始配置项目 1 因为我们要用rest框架,所以setting里面要配置rest框架东西,具体如下: 2 解决跨域问题看之前文章...,点击下面的链接就可以看 2 建模,model里面创建实体类模型 3 admin.py里面进行注册 4 打开admin后台 配置上传图片路径 1 项目的创建 1 pycharm创建django项目...什么也没有配置了,只是单纯创建一个django项目 ?...2 解决跨域问题看之前文章,点击下面的链接就可以看 django_rest 框架解决跨域问题 本项目里面我们要做是: 第一步:加跨域包 ? 第二部: ? 第三步: ?...2 建模,model里面创建实体类模型 设置好配置之后,首先需要进行建模,model.py里面进行建模 写好代码之后要进行迁移到数据库 from django.db import models #

68710

python测试开发django-20.添加创建时间DateTimeField

前言 我们admin后台发布一篇文章时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章时候自动添加,最后更新时间就是每次修改文章内容后自动更新 models.py建表时候...,设置creat_time和update_time类型为DateTimeField,添加auto_now_add和auto_now参数 DateTimeField 创建djangomodel时,有DateTimeField...该属性通常被用在存储“创建时间”场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法程序手动为字段赋值,admin字段也会成为只读。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序手动为字段赋值; 如果使用django自带admin管理器,那么该字段...(auto_now_add=True) # 最后更新时间 update_time = models.DateTimeField(auto_now=True) def __str

1.2K20

Django小技巧04: 自动日期时间字段

翻译整理自: simpleisbetterthancomplex.com Django DateTimeField和DateField有两个非常有用参数,用于自动管理时间。...如果你需要跟踪保存纪录创建时间和更改时间,则无须手动执行,只需要加上auto_now和auto_now_add参数并设置为True即可。...(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) auto_now_add创建时候设置字段为timezone.now...() auto_now 每次调用save方法都会更新字段 需要注意是, 两个参数都将使用timezone.now()更新字段值,这意味着纪录创建时候两个字段都将会填充。...这是一个非常简单技巧, 让你代码变得非常清晰。 阅读更多关于Automatic DateTime Fields文档. Django Documentation

2.2K30

django modelupdate时auto_now不被更新原因及解决方式

('更新时间,自动更新', auto_now=True, null=True, help_text='更新时间') djangoorm关于更新数据库方法有update和save两种方法。...层 使用update不会自动更新;因此需要在使用filterupdate更新时候同时赋值时间为datetime.datetime.now() 如果用django filterupdate(通常为批量更新数据时...)则是因为直接调用sql语句 不通过 model层 User.objects.filter(id=1).update(username=’xxx’) 补充知识:Djangoauto_now=True...没有自动更新 auto_now=True自动更新,有一个条件,就是要通过djangomodel层。...update时auto_now不被更新原因及解决方式就是小编分享给大家全部内容了,希望能给大家一个参考。

2.2K41

Django 使用 ORM 操作数据库详解

python一个默认编写规范是一切皆对象,这样做使得代码简洁,结构清晰,便于维护和重用代码,同时极大提升开发效率。...同样操作数据库时,一般我们用SQL语句来实现操作,但是放在Python是一串冗长字符串,不利于调试和修改,更不符合上面提到规范。...无法实现某些复杂操作 遗忘SQL语句编写 怎么选择原生SQL和ORM 对于复杂SQL语句或数据库层面,推荐使用原始SQL 对于要处理复杂业务逻辑,加快开发,推荐使用ORM ORM 相对 原始SQL一般业务...unique_for_month:该月份值是否唯一 auto_now=True:更新数据时间 auto_now_add=True:插入数据时间 DecimalField max_digits...更改数据库表 删除模型步骤 删除表模型 删除项目中migraions文件夹下模型类生成对应文件 删除数据库migraions表生成记录 删除数据表 导入数据 1.命令行添加 ?

73720

Django项目知识点(三)

如果abstract = True 这个model就是一个抽象类 app_label 这个选型只一种情况下使用,就是你模型不在默认应用程序包下models.py文件,这时候需要指定你这个模型是哪个应用程序...定义该model在数据库表名称db_table = 'Students' get_latest_by model中指定一个DateField或者DateTimeField。...注意:Django一个模型只允许有一个自增字段,并且该字段必须为主键!...models.DateField  日期字段类型date 注意:参数auto_now=True表示每次更新都会更新这个时间;参数auto_now_add表示只是第一次创建时添加,之后更新不再改变 models.DateTimeField...DateTimeField DateTimeField.auto_now 这个参数默认值为false,设置为true时,能够保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新

1.8K30

python测试开发django-20.添加创建时间DateTimeField

前言 我们admin后台发布一篇文章时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章时候自动添加,最后更新时间就是每次修改文章内容后自动更新 models.py建表时候...,设置creat_time和update_time类型为DateTimeField,添加auto_now_add和auto_now参数 DateTimeField 创建djangomodel时,有DateTimeField...该属性通常被用在存储“创建时间”场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法程序手动为字段赋值,admin字段也会成为只读。...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序手动为字段赋值; 如果使用django自带admin管理器,那么该字段...(auto_now_add=True) # 最后更新时间 update_time = models.DateTimeField(auto_now=True) def __str__(self

99820
领券