2

makemigrationsdjango 1.7 中的命令如何检测更改?

我有一个问题,它总是告诉我我的一个领域有变化,而没有。当我运行该命令时,它只是一遍又一遍地写入相同的迁移文件而没有任何更改。

该字段是一个自定义字段,我在其上实现了 deconstruct 方法,并且有一些参数是对象,因此我使用了 deconstructible 装饰器。

我在 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)])),
    ),
]
4

1 回答 1

1

问题似乎与https://code.djangoproject.com/ticket/23473中的相同

解决方案是在标记为可解构的类上添加一个__eq__方法。

于 2014-10-22T18:01:14.810 回答