Django 1.7 调整一下 choices 的顺序居然需要做 migration

2014-10-20 19:18:41 +08:00
 zhangshine
今天调整了一下choices的顺序, django竟然认为需要做一次migration。

就像下面的代码,把CHOICES里的('First', 1) 和 ('Second', 2)调换一下顺序,然后运行./manage makemigrations, 产生了一个0002_auto_20141020_1019.py文件。


源:
```
CHOICES = [
('First', 1),
('Second', 2)
]


class Mig(models.Model):
choice = models.CharField(max_length=200, choices=CHOICES)
```

0002:
```
class Migration(migrations.Migration):

dependencies = [
('Mig', '0001_initial'),
]

operations = [
migrations.AlterField(
model_name='mig',
name='choice',
field=models.CharField(max_length=200, choices=[(b'Second', 2), (b'First', 1)]),
preserve_default=True,
),
]
```

So, 大家认为这是Django有意为之的还是没有优化好?
4030 次点击
所在节点    Django
2 条回复
ant_sz
2014-10-20 19:55:22 +08:00
应该是没有优化好
实际上是Field的任何一个参数改变,django都会检测到并生成一个migration。有些纯 Python 的参数如 blank 的改变也会导致检查到 migration
zhangshine
2014-10-20 20:23:43 +08:00
@ant_sz soga

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/140301

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX