【问题标题】:South: How to rename a model with a name containing uppercase letters?South:如何用包含大写字母的名称重命名模型?
【发布时间】:2012-07-29 00:02:49
【问题描述】:

感谢令人惊叹的应用 South 提供的精美文档,我成功地使用以下代码重命名了模型:

def forwards(self, orm):
    db.rename_table('myapp_a_model', 'myapp_another_model')

def backwards(self, orm):
    db.rename_table('myapp_another_model','myapp_a_model')

但是,模型的真实名称包含大写字母,即myapp_A_Model,我想将myapp_A_Model重命名为myapp_Another_Model。大写字母对我很重要。挑战在于下面的代码:

db.rename_table('myapp_A_Model', 'myapp_Another_Model')

不起作用。如何将模型重命名为带有大写字母的模型?

【问题讨论】:

  • 我认为可能是数据库问题。您使用的是哪个数据库? PostgreSQL? MySQL?无论如何,如果您说为什么需要区分大小写的数据库表名,那就太好了,因为如果没有,那似乎只是一时兴起……
  • 我认为大写词是 Django 命名约定的一部分? python.org/dev/peps/pep-0008/#class-names -- 我正在使用 PostGres
  • CapWords 用于类名。但是您正在处理表名,对吗?文档 (docs.djangoproject.com/en/dev/ref/databases/#table-names) 说:“如果可能,建议您使用小写表名 [...]。Django 在从模型自动生成表名时使用小写表名”
  • 很高兴知道!叹息,我应该早点阅读这些文档。干杯!但是我认为没有办法完成上述工作?

标签: django django-models django-south


【解决方案1】:

事实证明,我有点困惑。

Django 模型名可以大写,而 PostGres 表名都可以小写。

【讨论】:

    猜你喜欢
    • 2011-03-15
    • 1970-01-01
    • 2019-12-15
    • 1970-01-01
    • 2013-10-14
    • 2012-12-23
    • 1970-01-01
    • 2011-03-29
    • 2022-06-30
    相关资源
    最近更新 更多