【问题标题】:Django Admin Interface - Custom App Name [duplicate]Django 管理界面 - 自定义应用程序名称 [重复]
【发布时间】:2011-05-02 17:40:40
【问题描述】:

在“Class Meta”中使用“app_label”可以解决这个问题。但它不会在发出“syncdb”命令时创建表。因为应用名称与 INSTALLED_APPS 条目不匹配。有什么方法可以同时实现(自定义应用名称和使用syncdb创建表)

【问题讨论】:

  • 您是否尝试自定义表名?你想达到什么目的?
  • @Dominic 我想他想将管理界面中出现的应用程序名称(标签)更改为一些自定义名称。
  • @Dominic @anand 是正确的。我想在管理界面中有自定义应用程序名称。
  • 这里的问题是,如果我们在模型中使用app_label,它不会在执行'syncdb'时创建数据库表。
  • 不是一个优雅的解决方案,但您可以按照 *.com/questions/612372/ 中的第二个答案。复制管理模板并在那里定义应用名称。

标签: django admin


【解决方案1】:

我还没有尝试过,但是here 有一个解决方案应该允许在使用syncdb 时更改应用标签。

class model_module1(models.model):
    [...]

    class Meta:
        app_label = "Cool module name"
        db_table = "module1_model"

class model_module2(models.model):
    [...]

    class Meta:
        app_label = "Cool module name"
        db_table = "module2_model"

这是有道理的,因为表的名称是明确的,所以在运行syncdb 时没有guessing。缺点是这两个Meta 选项必须在应用程序的每个模型中指定。

【讨论】: