diango model auto_now_add=True 添加只要年月日
时间: 2023-11-27 09:06:02 浏览: 29
当一个模型中的字段被设置为 `auto_now_add=True` 时,它默认会保存对象被创建的日期和时间。如果你只想保存年月日,可以使用 Django 内置的 `timezone` 模块。在模型中定义一个 `DateTimeField` 字段,并使用 `timezone.now().date()` 作为默认值,如下所示:
```python
from django.db import models
from django.utils import timezone
class MyModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
date_created = models.DateField(default=timezone.now().date())
# other fields...
```
这里我们使用了 `timezone.now().date()` 来获取当前日期,并将其作为 `date_created` 字段的默认值。这样,当该模型对象被创建时,`created_at` 字段将包含日期和时间,而 `date_created` 字段将只包含日期。
相关问题
django中auto_now
和auto_now_add的区别是什么?
auto_now和auto_now_add都是Django中的Model Field选项,用于设置一个datetime字段自动保存当前日期时间。
auto_now_add用于在对象第一次被创建时自动保存当前日期时间,之后更新该对象时不会再改变这个字段的值;
auto_now用于在每次更新对象时自动保存当前日期时间,即每次保存对象时都会更新这个字段的值。
因此,auto_now_add和auto_now的区别在于auto_now_add只在对象创建时保存一次时间戳,而auto_now在每次更新对象时都会更新时间戳。
date = models.DateTimeField(verbose_name="签到时间", auto_now_add=True)
这是一个 Django 中的模型字段,它表示一个日期时间类型的字段,用于记录签到时间,并且在对象第一次被创建时自动设置为当前时间。其中,`verbose_name` 是字段的人类可读名称,`auto_now_add=True` 表示只能在对象第一次被创建时自动设置为当前时间,之后的修改不会影响该字段的值。