`
wangyongfei
  • 浏览: 23176 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

django:DateTimeField设置当前时间

阅读更多

创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三中对象。这三个field有着相同的参数auto_now和auto_now_add。

 

1.DateTimeField.auto_now

这个参数的默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。因此这个参数在需要存储“最后修改时间”的场景下,十分方便。需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django再带的admin管理器,那么该字段在admin中是只读的。

 

2.DateTimeField.auto_now_add

这个参数的默认值也为False,设置为True时,会在model对象第一次被创建时,将字段的值设置为创建时的时间,以后修改对象时,字段的值不会再更新。该属性通常被用在存储“创建时间”的场景下。与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin中字段也会成为只读的。

 

3.admin中的日期时间字段

auto_now和auto_now_add被设置为True后,这样做会导致字段成为editable=False和blank=True的状态。editable=False将导致字段不会被呈现在admin中,blank=Ture表示允许在表单中不输入值。此时,如果在admin的fields或fieldset中强行加入该日期时间字段,那么程序会报错,admin无法打开;如果在admin中修改对象时,想要看到日期和时间,可以将日期时间字段添加到admin类的readonly_fields中:

class YourAdmin(admin.ModelAdmin):
    readonly_fields = ('save_date', 'mod_date',)
admin.site.register(Tag, YourAdmin)

 

4.如何将创建时间设置为“默认当前”并且可修改

那么问题来了。实际场景中,往往既希望在对象的创建时间默认被设置为当前值,又希望能在日后修改它。怎么实现这种需求呢?

django中所有的model字段都拥有一个default参数,用来给字段设置默认值。可以用default=timezone.now来替换auto_now=True或auto_now_add=True。timezone.now对应着django.utils.timezone.now(),因此需要写成类似下面的形式:

from django.db import models
	import django.utils.timezone as timezone
	class Doc(models.Model):
	    add_date = models.DateTimeField('保存日期',default = timezone.now)
	    mod_date = models.DateTimeField('最后修改日期', auto_now = True)

 

 

 

分享到:
评论

相关推荐

    如何在Django中添加没有微秒的 DateTimeField 属性详解

    在Django中,DateTimeField是用于存储日期和时间的字段类型,它默认会保存到数据库时包含微秒的精度。然而,在某些情况下,你可能希望避免这种精度,特别是在与前端应用或其他系统交互时,可能会遇到微秒不兼容或...

    Django Web开发指南.pdf.zip

    Django提供了丰富的字段类型和管理选项,如CharField、IntegerField、DateTimeField等,以及自定义方法和Meta类用于进一步配置。模型类的实例化会自动创建数据库表,实现了ORM(对象关系映射)。 视图是应用的控制...

    django:完美主义者的Web框架,有最后期限

    在实际开发中,Django的这些特性使开发者能快速构建出功能完善的Web应用,同时保证代码的整洁和可维护性,即便是在紧张的时间表下。"django-master"可能是一个Django项目的源码仓库,包含了整个项目的结构和文件,可...

    blog_site_django:博客网站由Django 3创建

    在这个项目中,我们将深入探讨如何利用Django 3的各项特性来构建一个完整的博客系统。 【主要知识点】 1. Django框架基础: - MTV架构:理解模型(Model)、模板(Template)和视图(View)之间的关系,以及它们...

    Project-Blog-Django:Django博客设计(RSwTA)

    "RSwTA"可能代表"基于Django的博客系统构建过程"或者"使用Django实现的博客系统",但具体含义没有明确给出。因此,我们将重点放在Django博客系统的一般设计和实现上。 1. **环境搭建** 在开始项目之前,确保你已经...

    website-django:创建 Django 博客

    下面,我们将深入探讨如何利用Django创建一个功能丰富的博客系统。 1. **Django的安装与设置** 在开始之前,确保已经安装了Python环境。然后,通过pip安装Django: ``` pip install django ``` 安装完成后,...

    django:django学习

    Django 安装与设置** 安装 Django 可以通过 pip,Python 的包管理器来完成。在命令行中输入 `pip install django` 即可。安装完成后,可以使用 `django-admin startproject myproject` 命令创建一个新的项目,其中 ...

    Blog-Django:Django的第一个网站

    这将在当前目录下创建一个名为"myblog"的文件夹,包含Django项目的结构。 3. **配置应用** 在项目文件夹内,创建一个新应用,如"blog": ``` python manage.py startapp blog ``` 在`settings.py`文件中,将...

    blog_in_django:使用django创建我的博客

    在本项目"blog_in_django"中,我们将深入探讨如何使用Python的Web框架Django来构建一个个人博客系统。这个项目的核心目标是学习和实践Django的各个方面,从而熟悉其工作流程并掌握创建动态网站的基本技能。Django以...

    curso-django:在Django站点上进行Python编程

    "curso-django:在Django站点上进行Python编程" 是一个关于使用Python的Django框架构建Web应用的课程。这个课程可能涵盖了多个方面,旨在帮助学习者熟练掌握Django的用法,从而在Web开发中实现高效编程。下面将详细...

    Braga-PyDjango:使用Django创建应用

    这个框架以其高效、安全和可扩展性而闻名,广泛用于构建内容管理系统、社交网络、API 服务等各类 Web 应用。 **创建 Django 项目** 在开始使用 Django 创建应用之前,首先需要确保已经安装了 Django。可以通过...

    Web-Django:使用Django进行网络学习

    **Django简介** Django是Python编程语言中的一个高级Web框架,它遵循“干(Don't Repeat Yourself)”原则,旨在简化开发过程并提高代码复用性。Django以其强大、安全和快速的特点,在Web开发领域备受青睐。这个教程...

    基于django的博客系统源码_python学习项目

    1. **Django模型**:如何定义模型字段,如CharField、TextField、DateTimeField等,以及如何设置外键(ForeignKey)关联。 2. **视图处理**:理解GET和POST请求的区别,以及如何从视图中获取和处理数据。 3. **...

    python_django:Aulas de python com django | 数字创新一

    【Python与Django框架简介】 Python是一种高级编程语言,以其简洁、易读的语法和强大的功能而受到全球程序员的喜爱。它被广泛应用于Web开发、数据分析、人工智能等多个领域。Python的库生态系统极其丰富,使得...

    django编写的博客系统

    **Django博客系统详解** Django是一个用Python编写的高级Web框架,它遵循“DRY(Don't Repeat Yourself)”原则,旨在简化Web应用的开发过程。本篇将深入探讨如何使用Django来构建一个功能完备的个人博客系统。 ##...

    trying_django:尝试使用Django python进行简单的项目

    这会在当前目录下生成一个名为`try_django`的文件夹,包含项目的基本结构。 ### 应用创建 在Django项目中,应用是可重用的代码单元。为了我们的推文功能,创建一个新的应用。进入项目目录,运行`python manage.py ...

    django-datetime:使用 django 设置变量更改 django 进程的日期时间

    综上所述,"django-datetime" 可能是对 Django 原生日期时间功能的扩展,提供了更便捷的日期时间设置、管理或者其他高级功能。在实际项目中,合理利用这些工具可以极大地提高开发效率并优化用户体验。如果你需要详细...

    Blog-App-in-Django:借助django框架制作的简单的甜蜜博客应用程序

    Django提供了一整套功能,包括ORM(对象关系映射)系统、内置的模板引擎、强大的表单处理以及内置的认证和管理界面,使得开发者可以快速构建高效、安全的Web应用。 **项目结构** 在"Blog-App-in-Django"项目中,...

    Django-2.1.15.tar.gz

    在Windows 64位系统上安装Django 2.1.15,首先需要确保已安装Python 3.x(推荐3.6+版本),然后通过命令行使用pip来安装: ``` pip install Django==2.1.15 ``` 3. **Django项目创建** 创建一个新的Django项目...

    django复习笔记:一个简单的文件分享系统

    【标题】:“django复习笔记:一个简单的文件分享系统” 在这个笔记中,我们将深入探讨如何使用Django框架构建一个基础的文件分享系统。Django是一个高级的Python Web框架,它鼓励快速开发并注重代码的可读性。对于...

Global site tag (gtag.js) - Google Analytics