【问题标题】:Avoid makemigrations to re-create date field避免 makemigrations 重新创建日期字段
【发布时间】:2015-02-04 12:11:21
【问题描述】:

使用 Django 1.7,每当我执行 makemigrations 时,我的一个模型都会发生变化:

(venv) >> python manage.py makemigrations myapp

Migrations for 'myapp':
  0005_auto_20141206_1129.py:
    - Alter field date on observation

这是由于我使用 datetime.today() 的观察类:

class Observation(model.Models):
    date = models.DateField(default=datetime.datetime.today())

有没有一种简单的方法可以避免为此创建迁移文件,但同时在创建 Observation 时保持默认的 today()

【问题讨论】:

    标签: django django-models


    【解决方案1】:

    问题在于,每次运行此代码时,默认值都会更改为today() 的当前值。那是因为您实际上是在调用该函数,而不是将其作为可调用对象传递。只需去掉尾随的() 就可以了。

    (请注意,您应该使用datetime.date.today,因为您需要date 值,而不是datetime 值。)

    【讨论】:

      猜你喜欢
      • 2020-07-14
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      相关资源
      最近更新 更多