我有一个模型:

class Temp(models.Model):
    user = models.ForeignKey(to=User, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)

有时我想创建一个具有固定时间的此类对象,但它忽略了时间并使用AUTO_NOW_ADD设置时间:

data = {'created_at': datetime.datetime.now()}
temp = TempSerializer(data=data)

我能做什么?

推荐答案

auto_now_add=True field [Django-doc]忽略传递给它的任何值,它只是在创建对象时获取时间戳.

相反,您可以通过将default=timezone.now设置为可编辑:

from django.conf import settings
from django.utils import timezone


class Temp(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    created_at = models.DateTimeField(default=timezone.now)

Note:通常情况下,使用settings.AUTH_USER_MODEL [Django-doc]来引用用户模型比直接使用User model [Django-doc]要好.欲了解更多信息,您可以查看referencing the User model section of the documentation.

Django相关问答推荐

POST_SAVE接缝有错误

如何访问 django 模板中的字典值?

DjangoRestFramework 解析错误:"多部分表单解析错误多部分中的无效边界:None"

在 Serverless + Lambda + API Gateway HTTP API 上运行的 Django 应用程序正在重写链接以使用默认前缀

djangorestframework:过滤相关字段

Django:在模板中显示当前语言环境

如何在 Django ORM 中执行 GROUP BY ... COUNT 或 SUM?

无法通过 pip 安装 Django 2.0

通过 django shell 保存图像/文件

Django 登录到控制台

django 表单为关键字参数获取了多个值

从基于类的通用视图中获取 request.session

get_or_create() 线程安全吗

在 Django 中使用 Cython,是否有意义?

刷新时重新提交的django表单

如何获取经过身份验证的用户列表?

Django中reverse()和reverse_lazy()的区别

警告:找不到分发的 svn 位置==0.6.16dev-r0

Django 将多个模型传递给一个模板

在 Django 中使用 select_related Select 特定字段