django的默认管理界面增强版 - 可定制的主题,弹出窗口被模态对话框替代以及其他许多功能。
项目描述
django-admin-interface
django-admin-interface 是一个现代化的 响应式扁平化管理界面,管理员可以自行进行定制。
功能
- 美丽的默认 django 主题
- 主题管理和定制 (您可以自定义管理标题、标志和颜色)
- 响应式
- 相关模态框 (而不是旧式的弹出窗口)
- 环境名称/标记
- 语言选择器
- 可折叠的应用程序 (导航栏中的手风琴)
- 可折叠的字段集 可以展开初始状态而不是折叠
NEW
可折叠的内联NEW
标签页字段集和内联NEW
列表过滤器移除链接NEW
列表过滤器突出显示选中选项- 列表过滤器下拉菜单
- 列表过滤器粘性
- 表单控件粘性 (分页和保存/删除按钮)
- 兼容性/风格优化支持
django-ckeditor
django-dynamic-raw-id
django-json-widget
django-modeltranslation
django-rangefilter
django-streamfield
django-tabbed-admin
sorl-thumbnail
- 支持多种语言翻译:
de
、es
、fa
、fr
、it
、pl
、pt_BR
、ru
、tr
安装
- 运行
pip install django-admin-interface
- 在
django.contrib.admin
之前将admin_interface
和colorfield
添加到settings.INSTALLED_APPS
INSTALLED_APPS = (
#...
"admin_interface",
"colorfield",
#...
"django.contrib.admin",
#...
)
X_FRAME_OPTIONS = "SAMEORIGIN"
SILENCED_SYSTEM_CHECKS = ["security.W019"]
- 运行
python manage.py migrate
- 运行
python manage.py collectstatic --clear
- 重启您的应用程序服务器
[!WARNING] 如果您想使用模态框而不是弹出窗口,请确保添加
X_FRAME_OPTIONS = "SAMEORIGIN"
设置。
可选功能
要使字段集从展开开始,并带有 隐藏
按钮以折叠,请将其类添加为 "expanded"
class MyModelAdmin(admin.ModelAdmin):
# ...
fieldsets = [
("Section title", {
"classes": ("collapse", "expanded"),
"fields": (...),
}),
]
# ...
可选主题
此软件包附带可选主题作为固定装置,可以使用 loaddata 管理命令 进行安装。可选主题在安装时激活。
Django 主题(默认)
运行 python manage.py loaddata admin_interface_theme_django.json
Bootstrap 主题
运行 python manage.py loaddata admin_interface_theme_bootstrap.json
Foundation 主题
运行 python manage.py loaddata admin_interface_theme_foundation.json
U.S. Web Design Standards 主题
运行 python manage.py loaddata admin_interface_theme_uswds.json
添加更多主题
您可以通过 发送 PR 将您创建的主题添加到这个存储库。以下是添加主题的步骤:
-
使用
dumpdata
管理命令将您的确切主题作为固定装置导出:python manage.py dumpdata admin_interface.Theme --indent 4 -o admin_interface_theme_{{name}}.json --pks=N
-
将生成的 json 文件复制到固定装置文件夹中 (确保其名称以
admin_interface_theme_
开头,以避免与其他第三方应用程序可能提供的固定装置发生冲突)。 -
从固定装置中删除
pk
并确保将active
字段设置为true
(这样主题在安装时自动激活)。 -
编辑上面的部分以记录您的主题。
向第三方库添加主题支持
您可以使用以下 CSS 变量 向现有的第三方库添加 主题支持:
页眉
--admin-interface-header-background-color
--admin-interface-header-text-color
--admin-interface-header-link-color
--admin-interface-header-link_hover-color
--admin-interface-title-color
--admin-interface-env-color
标志
管理员界面Logo颜色
管理员界面Logo默认背景图片
管理员界面Logo最大宽度
管理员界面Logo最大高度
模块/链接
管理员界面模块背景颜色
管理员界面模块选中背景颜色
管理员界面模块边框圆角
管理员界面模块文本颜色
管理员界面模块链接颜色
管理员界面模块选中链接颜色
管理员界面模块链接悬停颜色
管理员界面通用链接颜色
管理员界面通用链接悬停颜色
管理员界面通用链接激活颜色
按钮
管理员界面保存按钮背景颜色
管理员界面保存按钮背景悬停颜色
管理员界面保存按钮文本颜色
管理员界面删除按钮背景颜色
管理员界面删除按钮背景悬停颜色
管理员界面删除按钮文本颜色
相关模态框
管理员界面相关模态框背景颜色
管理员界面相关模态框背景透明度
管理员界面相关模态框边框圆角
管理员界面相关模态框关闭按钮显示
截图
管理员登录
管理员仪表板
管理员主题管理
管理员主题定制
本地化
目前,此包已翻译成以下语言: de
、es
、fa
、fr
、it
、pl
、pt_BR
、tr
。
翻译成其他语言
-
运行
python -m django makemessages --ignore ".tox" --ignore "venv" --add-location "file" --extension "html,py" --locale "it"
(意大利语本地化示例) -
更新翻译至
admin_interface/locale/it/LC_MESSAGES/django.po
-
运行
python -m django compilemessages --ignore ".tox" --ignore "venv"
更新翻译
如果您对项目进行了更改,请记住更新翻译,因为如果翻译文件未更新,CI中的 lint
步骤将失败
- 运行
tox -e translations
缓存
此包使用缓存来提高主题加载时间和整体性能。您可以使用 settings.CACHES["admin_interface"]
设置自定义应用程序缓存选项,否则将使用 "default"
缓存
CACHES = {
# ...
"admin_interface": {
"BACKEND": "django.core.cache.backends.locmem.LocMemCache",
"TIMEOUT": 60 * 5,
},
# ...
}
[!WARNING] 当使用此包与
django-redis
一起使用时存在一个已知的兼容性问题(跳转),特别是使用JSONSerializer
时,将引发以下错误:TypeError: Object of type Theme is not JSON serializable
,为了减轻此问题,只需为此应用程序使用一个不使用任何json
序列化器的特定缓存。
常见问题解答
自定义 base-site.html
我已经有一个自定义的
base_site.html
,如何使其正常工作?
您可以使用 django-apptemplates,然后在您的 base_site.html
中添加 {% extends "admin_interface:admin/base_site.html" %}
自定义 LocaleMiddleware
警告
我正在使用
django.middleware.locale.LocaleMiddleware
子类,但我看到了一个不必要的关于缺少django.middleware.locale.LocaleMiddleware
的警告,我该怎么办?
您可以直接忽略该警告(这已在 此处 讨论过)
import warnings
warnings.filterwarnings("ignore", module="admin_interface.templatetags.admin_interface_tags")
语言选择器未显示
我已经启用了 语言选择器,但在管理界面中看不到它,我该怎么做?
您必须正确配置多语言 settings
和 urls
LANGUAGES = (
("en", _("English")),
("it", _("Italiano")),
("fr", _("Français")),
# more than one language is expected here
)
LANGUAGE_CODE = "en"
USE_I18N = True
MIDDLEWARE = [
# ...
"django.middleware.locale.LocaleMiddleware",
# ...
]
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.urls import include, path
# ...
urlpatterns = [
path("i18n/", include("django.conf.urls.i18n")),
]
urlpatterns += i18n_patterns(path("admin/", admin.site.urls))
在模态窗口中打开任何URL
我有一个在管理界面中有一些交叉链接的应用程序,并且我想将它们在模态窗口中打开而不是在相同的新窗口中,我该如何做?
您只需将 _popup=1
查询字符串参数添加到URL中
url = reverse(f"admin:myapp_mymodel_change", args=[mymodel_instance.pk])
url = f"{url}?_popup=1"
测试
# clone repository
git clone https://github.com/fabiocaccamo/django-admin-interface.git && cd django-admin-interface
# create virtualenv and activate it
python -m venv venv && . venv/bin/activate
# upgrade pip
python -m pip install --upgrade pip
# install requirements
pip install -r requirements.txt -r requirements-test.txt
# install pre-commit to run formatters and linters
pre-commit install --install-hooks
# run tests
tox
# or
python runtests.py
# or
python -m django test --settings "tests.settings"
贡献
欢迎贡献,请按照以下步骤提交高质量的PR
- :exclamation: 打开一个问题,请勿提交任何不引用现有问题的PR。
- :computer: 进行更改,更改应 最好 被测试覆盖,以避免未来出现回归。
- :globe_with_meridians: 更新翻译 文件。
- :test_tube: 运行测试 确保没有错误。
- :inbox_tray: 仅当它通过
CI
后,提交一个 拉取请求 并将其标记为 "准备审查"。
许可证
本作品采用 MIT 许可证 发布。
支持
另请参阅
-
django-cache-cleaner
- 通过管理面板或管理命令轻松清除整个缓存或单个缓存。 🧹✨ -
django-colorfield
- 模型中的简单颜色字段,在管理中具有漂亮的颜色选择器。 🎨 -
django-extra-settings
- 使用 django admin 仅配置和管理类型化额外设置。 ⚙️ -
django-maintenance-mode
- 当维护模式开启时,显示 503 错误页面。 🚧 🛠️ -
django-redirects
- 具有完全控制的重定向。 ↪️ -
django-treenode
- 可能是您基于树的结构最好的抽象模型/管理器。 🌳 -
python-benedict
- 具有键列表/键路径支持的 dict 子类,I/O 快捷方式(base64、csv、json、pickle、plist、查询字符串、toml、xml、yaml)和许多实用工具。 📘 -
python-codicefiscale
- 编码/解码意大利税号 - Codifica/decodifica del Codice Fiscale. 🇮🇹 💳 -
python-fontbro
- 友好的字体操作。 🧢 -
python-fsutil
- 懒惰的开发者的文件系统实用工具。 🧟♂️
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分发
构建分发
哈希值 for django_admin_interface-0.28.9-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 950051638389abbe14aa3a2ea58fc5278c4155473d8b0885d0403e454848515a |
|
MD5 | 32705d08e33501109ffb02c7607ee72f |
|
BLAKE2b-256 | 291bd63bd38ac3335f2c9d51a86bc68c71360678e98529a78bdd05f3b693cfc8 |