如何通过django 1.7中的makemigrations
命令检测到更改?
我有一个问题,它总是告诉我我的一个领域有变化,而没有。当我运行该命令时,它只是反复写入相同的迁移文件而没有任何更改。
该字段是一个自定义字段,我在其上实现了解构方法并且有一些参数作为对象,因此我使用了可解构的装饰器。
我在github上创建了一个复制问题的项目:https://github.com/YAmikep/django-testmigrations
我做错了什么?这是一个错误吗?
这是我跑的:
/projects/testmigrations$ python manage.py makemigrations app1
Migrations for 'app1':
0001_initial.py:
- Create model ModelA
/projects/testmigrations$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, contenttypes, auth, app1, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying app1.0001_initial... OK
Applying sessions.0001_initial... OK
/projects/testmigrations$ python manage.py makemigrations
Migrations for 'app1':
0002_auto_20141014_2123.py:
- Alter field field1 on modela
/projects/testmigrations$ python manage.py makemigrations
Migrations for 'app1':
0003_auto_20141014_2123.py:
- Alter field field1 on modela
迁移文件0002_auto_20141014_2123.py和0003_auto_20141014_2123.py包含完全相同的操作:
operations = [
migrations.AlterField(
model_name='modela',
name='field1',
field=app1.models.CustomField(max_length=50, value_manager=app1.models.ValueManager(values=[app1.models.Value(val=1), app1.models.Value(val=2)])),
),
]
答案 0 :(得分:1)
问题似乎与https://code.djangoproject.com/ticket/23473
中的问题相同解决方案是在标记为可解构的类上添加__eq__
方法。