我想更改模型中特定字段的名称:
class Foo(models.Model):
name = models.CharField()
rel = models.ForeignKey(Bar)
应更改为:
class Foo(models.Model):
full_name = models.CharField()
odd_relation = models.ForeignKey(Bar)
使用 South 执行此操作的最简单方法是什么?
您可以使用db.rename_column http://south.readthedocs.org/en/latest/databaseapi.html#db-rename-column功能。
class Migration:
def forwards(self, orm):
# Rename 'name' field to 'full_name'
db.rename_column('app_foo', 'name', 'full_name')
def backwards(self, orm):
# Rename 'full_name' field to 'name'
db.rename_column('app_foo', 'full_name', 'name')
第一个参数db.rename_column
是表名,因此记住如何使用很重要Django 创建表名 https://docs.djangoproject.com/en/stable/ref/models/options/#table-names:
Django 自动从模型类和包含它的应用程序的名称中派生出数据库表的名称。模型的数据库表名称是通过将模型的“应用程序标签”(您在 manage.py startapp 中使用的名称)连接到模型的类名称(它们之间使用下划线)来构造的。
如果您有一个多字、驼峰式命名的模型名称(例如 ProjectItem),则表名称将为app_projectitem
(即,下划线不会插入project
and item
即使它们是骆驼皮的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)