这是一个创建于 3723 天前的主题,其中的信息可能已经有所发展或是发生改变。
今天调整了一下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有意为之的还是没有优化好?
2 条回复 • 2014-10-20 20:23:43 +08:00
|
|
1
ant_sz 2014-10-20 19:55:22 +08:00
应该是没有优化好 实际上是Field的任何一个参数改变,django都会检测到并生成一个migration。有些纯 Python 的参数如 blank 的改变也会导致检查到 migration
|