Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django 1.8.4 makemigrations CreateModel更改字段的顺序_Python_Django_Django Migrations_Django 1.8 - Fatal编程技术网

Python Django 1.8.4 makemigrations CreateModel更改字段的顺序

Python Django 1.8.4 makemigrations CreateModel更改字段的顺序,python,django,django-migrations,django-1.8,Python,Django,Django Migrations,Django 1.8,我们刚刚从1.6版切换到Django 1.8.4版,这是第一次使用迁移,我们注意到在使用makemigrations命令时出现了一个问题。创建包含外键的新模型时会出现此问题。该命令生成一个迁移文件,字段顺序已更改:它将所有FK设置为最后一个,并按字母顺序重新组织它们 下面是一个例子: 另一类随机模型。模型: attr1=models.FloatField 另一类随机模型2模型。模型: attr1=models.FloatField 类RandomModelmodels。模型: fk2=model

我们刚刚从1.6版切换到Django 1.8.4版,这是第一次使用迁移,我们注意到在使用makemigrations命令时出现了一个问题。创建包含外键的新模型时会出现此问题。该命令生成一个迁移文件,字段顺序已更改:它将所有FK设置为最后一个,并按字母顺序重新组织它们

下面是一个例子:

另一类随机模型。模型: attr1=models.FloatField 另一类随机模型2模型。模型: attr1=models.FloatField 类RandomModelmodels。模型: fk2=models.ForeignKeyAnotherRandomModel2 attr2=models.FloatField fk1=模型。ForeignKeyAnotherRandomModel attr1=models.FloatField 将生成此迁移文件的:

类迁移迁移。迁移: 依赖项=[] 操作=[ migrations.CreateModel name='AnotherRandomModel', 田地=[ “id”,models.AutoFieldverbose\u name='id',serialize=False,auto\u created=True,primary\u key=True, “attr1”,models.FloatField, ], , migrations.CreateModel name='AnotherRandomModel2', 田地=[ “id”,models.AutoFieldverbose\u name='id',serialize=False,auto\u created=True,primary\u key=True, “attr1”,models.FloatField, ], , migrations.CreateModel name='RandomModel', 田地=[ “id”,models.AutoFieldverbose\u name='id',serialize=False,auto\u created=True,primary\u key=True, “attr2”,models.FloatField, “attr1”,models.FloatField, “fk1”,models.ForeignKeyto='inventorylab.AnotherRandomModel', “fk2”,models.ForeignKeyto='inventorylab.AnotherRandomModel2', ], , ] 您可以看到它是如何保持非FK字段的顺序的,但在最后设置了两个FK并对其重新排序

在模型上的顺序与在数据库上的顺序不同,这非常令人不安。有人知道如何强制命令保持模型的秩序吗


我知道我总是可以手动编辑创建的迁移文件,但我希望避免这样做。

为什么这里的字段顺序很重要?当然,如果顺序很重要,在表单、管理等中,您可以指定顺序。如果您真的关心迁移文件,您可以编辑迁移文件并更改顺序。我知道在pure Django中这并不重要,但我们确实从许多源访问和填充数据库表,通常使用原始SQL,而不总是使用命名参数。我们有自己的内部标准,所有其他100多个表都首先有外键。我只是不明白Django为什么要执行他自己的命令。@e4c5是的,这就是我要做的,但我想避免在每次创建表时都必须更改迁移文件,因为我知道我或团队中的某个人总有一天会忘记这样做。这是一件一次性的事情,在那之后第一次设置迁移就不重要了。