管理员中其他app标签下的Django模型?

时间:2015-04-13 13:54:25

标签: 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)

通过上面的示例,每个模型都显示在 admin interface 中,位于由应用程序名称标记的单独组中。

  --- appone
        |
        +--- ModelOne

  --- apptwo
        |
        +--- ModelTwo

如何告诉Django ModelTwo位于appone标签下? (不改变appone应用程序源及其模型!)

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

  --- apptwo
        <empty>

2 个答案:

答案 0 :(得分:3)

您是否考虑过django-modeladmin-reorder

Github:https://github.com/mishbahr/django-modeladmin-reorder PyPi:https://pypi.python.org/pypi/django-modeladmin-reorder/

免责声明:去年我遇到了类似的问题,我希望将最常用的应用放在管理员索引之上。找不到适合我情景的东西,所以我写了自己的:-)

答案 1 :(得分:3)

只需将app_label添加到Meta的{​​{1}}类:

ModelTwo