假设我有这个与南方相关的模型:
class MyModel(models.Model):
field_a = models.CharField(max_length=30)
field_b = models.CharField(max_length=30)
现在我想再添加一个字段,所以我在 field_a
和 field_b
之间创建了该字段,现在我的模型如下所示:
class MyModel(models.Model):
field_a = models.CharField(max_length=30)
field_c = models.CharField(max_length=30)
field_b = models.CharField(max_length=30)
然后我迁移了更改,在检查 MySQL 中的表结构时,在所有字段的末尾创建了 field_c
。我怎样才能告诉南方维护田地秩序,例如在 field_a
之后插入。
在 MySQL 中,我们可以在任何现有字段之前或之后插入新字段。在南方可以做到吗?
最佳答案
我不认为在使用 Django(或 South)时无法在 MySQL 中强制创建字段的顺序。新字段将始终附加到表定义的末尾。
但是:列的顺序应该与您无关。继续阅读...
如果您正在针对您的数据库编写 SQL 查询,那么执行 select *
并依赖于表的字段排序是一种错误的形式。相反,您应该指定要选择的字段以及报告它们的顺序。这使得基础表的字段顺序变得不重要。
此外,如果您组织中的任何人目前正在编写使用 select *
的报告:通过在其他人之间插入新列,您可以轻松地破坏使用字段位置(而不是字段名称)的报告,因为列的索引将发生变化。
关于python - 使用 south 时如何维护模型字段顺序结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14196112/