- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我当前的目标是在管理界面上显示注册用户的数量,例如 <h1>Users Count: {{model.count}}</h1>
假设模型已经等于用户模型。
为了实现这一点,我必须在位于 django.contrib.admin 的sites.py 中添加一行;有没有正确的方法来编辑这个文件?我应该复制整个 django.contrib.admin 吗?
注意:我在 venv 中编辑了文件并且它可以工作,但我想要一种更干净的方式,其中每个修改都位于我的管理应用程序下,而不是在 venv 中。
最佳答案
您需要的是位于本地 admin.py 文件中的 CustomAdminSite。在这种情况下,我必须添加以下函数包括其所需的导入(从 django.contrib.admin.sites.py“在 AdminSite 部分”复制):
def _build_app_dict(self, request, label=None):
"""
Build the app dictionary. The optional `label` parameter filters models
of a specific app.
"""
app_dict = {}
if label:
models = {
m: m_a for m, m_a in self._registry.items()
if m._meta.app_label == label
}
else:
models = self._registry
for model, model_admin in models.items():
app_label = model._meta.app_label
has_module_perms = model_admin.has_module_permission(request)
if not has_module_perms:
continue
perms = model_admin.get_model_perms(request)
# Check whether user has any perm for this module.
# If so, add the module to the model_list.
if True not in perms.values():
continue
info = (app_label, model._meta.model_name)
model_dict = {
'name': capfirst(model._meta.verbose_name_plural),
'object_name': model._meta.object_name,
'perms': perms,
'admin_url': None,
'add_url': None,
'count': model.objects.count(), {# !!----ONLY THIS LINE WAS ADDED------- #}
}
if perms.get('change') or perms.get('view'):
model_dict['view_only'] = not perms.get('change')
try:
model_dict['admin_url'] = reverse('admin:%s_%s_changelist' % info, current_app=self.name)
except NoReverseMatch:
pass
if perms.get('add'):
try:
model_dict['add_url'] = reverse('admin:%s_%s_add' % info, current_app=self.name)
except NoReverseMatch:
pass
if app_label in app_dict:
app_dict[app_label]['models'].append(model_dict)
else:
app_dict[app_label] = {
'name': apps.get_app_config(app_label).verbose_name,
'app_label': app_label,
'app_url': reverse(
'admin:app_list',
kwargs={'app_label': app_label},
current_app=self.name,
),
'has_module_perms': has_module_perms,
'models': [model_dict],
}
if label:
return app_dict.get(label)
return app_dict
关于python - Django AdminSite定制如何编辑sites.py文件? ("Properly"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56443034/
我的自定义 AdminSite 有问题 - 我的应用程序在管理索引中不可见,如果我输入适当的 URL 来查看它们的模型,则无法访问。我的问题与此非常相似:http://groups.google.co
并非所有软件都需要左侧的“内容制作者”管理界面和右侧的“访问者/成员”站点。 人们常说“管理员不是您的应用程序”(参见示例 the accepted answer (March 2009))。 我在
Environment: Request Method: GET Request URL: http://54.235.168.5/mds/ Django Version: 1.3.1 Python
这是实现我自己的最佳方式 django.contrib.admin.sites.AdminSite ? 实际上我在注册 INSTALLED_APPS 时遇到了问题在 django.contrib.ad
我按照手册中的描述覆盖了默认的 AdminSite 类,尽管那里关于这部分的信息太纯粹了。 我的 gs/admin.py 文件: from django.contrib.admin import Ad
我有两个管理网站,我想在这两个网站上都有不同的自定义模板这是我的 admin.py 文件: from django.contrib import admin from django.contrib.a
除了通常的管理员之外,我还想为非员工用户创建一个受限管理员。此管理站点将有不同的注册 ModelAdmin s。 我在我的项目目录中创建了一个文件夹/useradmin/并且类似于 contrib/a
我试图用我自己的自定义类覆盖 AdminSite 类。我遵循了 django 文档中的教程:https://docs.djangoproject.com/en/1.10/ref/contrib/adm
在 django 管理中,您可以为 ModelAdmin 设置 search_fields 以便能够搜索那里给定的属性。我的模型类有一个属性不是真正的模型属性,这意味着它不在数据库表中。该属性与未通过
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。
我尝试使用 get_urls 成员函数将非基于模型的 URL 添加到管理页面: from django.contrib.admin.sites import AdminSite from django
完整的错误信息是: AttributeError on running Django app on apache as localhost -- 'Adminsite' object has no a
我正在尝试更改管理站点的模板,并尝试通过为管理创建本地模板来覆盖,但失败了,不知道为什么:template way 。所以现在我尝试创建 AdminSite 实例并从那里进行更改,但仍然失败。我有:
我不想在我的 Django 项目上有多个 AdminSite,我不想给每个用户 super 用户角色只是为了查看和编辑应用程序的模型。 这是我的项目布局: > djangoApp > djan
我需要覆盖 def index(self, request, extra_context=None): View 来执行一些额外的功能,但不知道如何/在哪里创建一个类并继承 类 AdminSite 并
我不想在我的 Django 项目上有多个 AdminSite,我不想给每个用户 super 用户角色只是为了查看和编辑应用程序的模型。 这是我的项目布局: > djangoApp > djan
我是一名优秀的程序员,十分优秀!