避免makemigrations重新创建日期字段

Sae*_*aeX 3 django django-models

使用Django 1.7,每当我执行一个时makemigrations,我都会对我的一个模型进行更改:

(venv) >> python manage.py makemigrations myapp

Migrations for 'myapp':
  0005_auto_20141206_1129.py:
    - Alter field date on observation
Run Code Online (Sandbox Code Playgroud)

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

class Observation(model.Models):
    date = models.DateField(default=datetime.datetime.today())
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以避免为此创建迁移文件,但同时保持today()创建观察时的默认值?

Kev*_*nry 5

问题是每次运行此代码时,默认值都会更改为当前值today().那是因为你实际上在调用函数而不是将它作为可调用函数传递.只需留下尾随(),你应该没事.

(注意你应该使用datetime.date.today,因为你想要一个date值,而不是一个datetime值.)