我想更改模型中特定字段的名称:
类Foo(models.Model):
name=models.CharField()
rel=型号。外键(Bar)
应改为:
类Foo(models.Model):
全名=models.CharField()
奇数关系=模型。外键(条形)
使用South最简单的方法是什么
您可以使用db.rename\u列功能
类迁移:
def转发(自身、orm):
#将“名称”字段重命名为“全名”
db.重命名列(’app\u foo’,’name’,’full\u name’)
def向后(自身,orm):
#将“全名”字段重命名为“名称”
db.重命名列(’app\u foo’,’full\u name’,’name’)
db.rename\u column的第一个参数是表名,因此记住Django如何创建表名很重要:
Django自动从模型类和包含它的应用程序的名称派生数据库表的名称。模型的数据库表名是通过将模型的“应用程序标签”(manage.py startapp中使用的名称)连接到模型的类名来构造的,它们之间带有下划线
如果您有一个多字的驼峰式模型名称,如ProjectItem,表名将为app\u ProjectItem(即,即使它们是驼峰式的,也不会在project和item之间插入下划线)