Dav*_*ric 5 python django monkeypatching django-models django-admin
寻找一种方法如何将ModelAdmin实例分配给不同的默认应用程序标签,即使在最新的Django 1.8中也是如此.
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)
Run Code Online (Sandbox Code Playgroud)
通过上面的示例,每个模型都显示在由应用程序名称标记的单独组中的管理界面中.
--- appone
|
+--- ModelOne
--- apptwo
|
+--- ModelTwo
Run Code Online (Sandbox Code Playgroud)
如何告诉Django ModelTwo下发生的appone标签?(不改变appone应用程序源及其模型!)
--- appone
|
+--- ModelOne
|
+--- ModelTwo
--- apptwo
<empty>
Run Code Online (Sandbox Code Playgroud)
只需添加app_label到Meta以下类ModelTwo:
class ModelTwo():
class Meta:
app_label = 'appone'
Run Code Online (Sandbox Code Playgroud)
警告:正如 @guymaro86 所指出的,这将更改表的数据库名称并导致迁移。
你有没有考虑过django-modeladmin-reorder
Github: https: //github.com/mishbahr/django-modeladmin-reorder PyPi: https: //pypi.python.org/pypi/django-modeladmin-reorder/
免责声明:去年我遇到了非常类似的问题,我想将最常用的应用程序放在管理索引的顶部。找不到任何适合我的场景,所以我写了自己的:-)
| 归档时间: |
|
| 查看次数: |
2604 次 |
| 最近记录: |