python - 管理员中其他应用标签下的 Django 模型?

标签 python django django-models django-admin monkeypatching

寻找一种方法,即使在最新的 Django 1.8 中,也可以将 ModelAdmin 实例分配给与默认应用程序标签不同的标签。

Django 项目架构:

<root>/appone/models.py    # class ModelOne(django.db.models.Model)
<root>/appone/admin.py     # class ModelOneAdmin(
                           #     django.contrib.admin.ModelAdmin)
                           # admin.site.register(
                           #     ModelOne, ModelOneAdmin)

<root>/apptwo/models.py    # class ModelTwo(django.db.models.Model)
<root>/apptwo/admin.py     # class ModelTwoAdmin(
                           #     django.contrib.admin.ModelAdmin)
                           # admin.site.register(
                           #     ModelTwo, ModelTwoAdmin)

在上面的示例中,每个模型都出现在管理界面中,在其单独的组中,这些组由应用程序名称标记。

  --- appone
        |
        +--- ModelOne

  --- apptwo
        |
        +--- ModelTwo

如何告诉 Django ModelTwo 放在 appone 标签下? (无需更改 appone 应用程序源及其模型!)

  --- appone
        |
        +--- ModelOne
        |
        +--- ModelTwo

  --- apptwo
        <empty>

最佳答案

只需将 app_label 添加到 ModelTwoMeta 类:

class ModelTwo():
    class Meta:
        app_label = 'appone'

警告:如@guymaro86 所述,这将更改表的数据库名称并导致迁移。

关于python - 管理员中其他应用标签下的 Django 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29607081/

相关文章:

python - 给定一些索引,如何在索引的 "rest"上索引数组/张量?

Django 和 NoSQL,任何现成的库?

python - 截断作为路径的字符串的 filname 部分。

python - @mock.patch 如何知道每个模拟对象使用哪个参数?

python - 在给定一组坐标的情况下计算曲线下的面积,而不知道函数

python - Django - 通过排序合并两个查询集

python - 我应该在 PyPI 发布的包中测试不受支持的 Django 版本吗?

python - QuerySet,对象没有属性id - Django

python - 模型子类: override CharField max_length

python - Django自定义身份验证模型注册表单返回唯一用户名错误