在 Django 1.5 中更改组的应用程序标签
Posted
技术标签:
【中文标题】在 Django 1.5 中更改组的应用程序标签【英文标题】:Change app label of groups in Django 1.5 【发布时间】:2013-05-31 06:52:48 【问题描述】:我已经扩展了用户模型,但是现在新的用户模型在一个名为“帐户”的应用程序中,它为该应用程序内的所有模型提供了应用程序标签“帐户”。 Django 模型“Groups”仍然具有应用程序标签“Auth”,所以现在所有与 auth 有关的模型都在管理站点中的单独应用程序中。是否可以更改“群组”的应用标签?
【问题讨论】:
【参考方案1】:试试这个:
from django.db.models.loading import get_models
get_models(django.contrib.auth.models)[1]._meta.app_label = 'group' #or whatever
【讨论】:
很好,但是忽略 django 的内部模型定义是否明智? 好吧.. 它不是“弄乱”它,而只是编辑一个字段。就像更新设置一样。【参考方案2】:如果您需要更多的管理员灵活性,您可以尝试django-admin-tools。它可以轻松地在不同布局(选项卡、可折叠框等)中对模型进行重新排序和分组,还可以添加类似仪表板的功能。
【讨论】:
【参考方案3】:以防万一有人在 Django 3.0+ 中需要它:
from django.apps import apps
apps.get_model('auth', 'Group')._meta.app_label = 'group' #or whatever, but have to be a registered app
请注意,这会影响 django 内部模型处理,例如在 contrib.auth 站点包等中生成迁移
【讨论】:
以上是关于在 Django 1.5 中更改组的应用程序标签的主要内容,如果未能解决你的问题,请参考以下文章
Django 1.5:扩展 base.html 时,我的 <head> 标签显示在我孩子的 <body> 中
在机器学习中,改组如何与 ImageDataGenerator 一起工作?
如何从 Django 模板/上下文中更改为字符串并删除 '?