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

在Django的父模型中更新auto_now DateTimeField

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

  1. 在父模型中定义一个方法,该方法将更新auto_now DateTimeField。
代码语言:python
代码运行次数:0
复制
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
代码运行次数:0
复制
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中字段也会成为只读的。

3.2K10

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中字段也会成为只读的。

72920
  • 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 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

    81300

    用人话讲解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。

    42030

    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就会自动更新该字段.

    71330

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

    创建django的model时,有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中字段也会成为只读的。 ?

    7.3K80

    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 #

    71510

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

    前言 我们在admin后台发布一篇文章的时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章的时候自动添加的,最后更新时间就是每次修改文章的内容后自动更新 在models.py建表的时候...,设置creat_time和update_time类型为DateTimeField,添加auto_now_add和auto_now参数 DateTimeField 创建django的model时,有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.3K20

    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 使用 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.命令行添加 ?

    80520

    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.9K30

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

    前言 我们在admin后台发布一篇文章的时候,一般会有创建时间和最后更新时间这2个字段,创建时间就是第一次编辑文章的时候自动添加的,最后更新时间就是每次修改文章的内容后自动更新 在models.py建表的时候...,设置creat_time和update_time类型为DateTimeField,添加auto_now_add和auto_now参数 DateTimeField 创建django的model时,有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

    1K20

    Django model update的各种用法介绍

    Django开发过程中对表(model)的增删改查是最常用的功能之一,本文介绍笔者在使用model update过程中遇到的那些事 model update常规用法 假如我们的表结构是这样的 class...,我们接着往下看 具有auto_now属性字段的更新 我们通常会给表添加三个默认字段 自增ID,这个django已经默认加了,就像上边的建表语句,虽然只写了username和is_active两个字段,...=True, verbose_name='创建时间') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间'...') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') username = models.CharField...') update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') username = models.CharField

    5.7K20
    领券