Django 1.8现在可以对模型进行一些问题检测,这很不错.然而,对于它给我的一个警告,我理解这个问题,但我不明白它给我的暗示怎么会更好.

这是我的(错误)型号字段:

my_date = DateField(default=datetime.now())

很容易看出为什么这是不好的.但这是它给我的提示:

MyMoel.my_date: (fields.W161) Fixed default value provided.
    HINT: It seems you set a fixed date / time / datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now`

所以,它说使用timezone.now,但这怎么会比datetime.now更好呢?它们是both个"固定默认值".timezone.now只有returns个DateTime实例,这是一个固定值.

我怀疑它实际上想让我插入某种标志,上面写着"使用timezone.nowlater".但这不是暗示所说的...那面旗子是什么?

推荐答案

当前一旦导入代码,即当您(重新)启动服务器时,就会执行函数datetime.now().所有后续模型实例都将具有相同的值.

相反,您应该将可调用函数传递给default,每次模型实例需要默认值时都会执行该函数.该提示想传达的是,您应该从字面上使用不带括号的DateField(default=django.utils.timezone.now).

这个信息有点误导,但Django不知道你用的是datetime.now()还是django.utils.timezone.now().

Django相关问答推荐

如何在Django模型mixin字段定义中引用模型名称?

通过get_form_kwargs将请求传递给Django表单未能使表单访问self.request.user.

SQLite上可以正常使用Many2Many链接注释,但MariaDB上无法正常使用(生产环境)

如何组织 Django REST Framework url

如何将数据(具体归档)从views.py 传递到models.py

Django 模板文件夹

Django InlineModelAdmin:部分显示内联模型并链接到完整模型

Django PositiveIntegerField 中的 0 值?

JSP模板继承

Django 从 url 保存图像并与 ImageField 连接

如何访问 Django Rest Framework 上的自定义 HTTP 请求标头?

使用移动应用程序保护通信 [真实性、隐私和完整性]?

Django聚合:仅求和返回值?

Django -- User.DoesNotExist 不存在?

has_object_permission 和 has_permission 有什么区别?

Django 国际化语言代码

Django查询否定

如何获取 pytz 时区的通用名称

Django将整数模型字段的范围设置为约束

使用 .order_by() 和 .latest() 的 Django 查询