跳转到主要内容

django的默认管理界面增强版 - 可定制的主题,弹出窗口被模态对话框替代以及其他许多功能。

项目描述

django-admin-interface

django-admin-interface 是一个现代化的 响应式扁平化管理界面,管理员可以自行进行定制。

django-admin-interface-preview

功能

  • 美丽的默认 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
  • 支持多种语言翻译:deesfafritplpt_BRrutr

安装

  • 运行 pip install django-admin-interface
  • django.contrib.admin 之前将 admin_interfacecolorfield 添加到 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 将您创建的主题添加到这个存储库。以下是添加主题的步骤:

  1. 使用 dumpdata 管理命令将您的确切主题作为固定装置导出:python manage.py dumpdata admin_interface.Theme --indent 4 -o admin_interface_theme_{{name}}.json --pks=N

  2. 将生成的 json 文件复制到固定装置文件夹中 (确保其名称以 admin_interface_theme_ 开头,以避免与其他第三方应用程序可能提供的固定装置发生冲突)

  3. 从固定装置中删除 pk 并确保将 active 字段设置为 true (这样主题在安装时自动激活)

  4. 编辑上面的部分以记录您的主题。

向第三方库添加主题支持

您可以使用以下 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最大高度

模块/链接

  • 管理员界面模块背景颜色
  • 管理员界面模块选中背景颜色
  • 管理员界面模块边框圆角
  • 管理员界面模块文本颜色
  • 管理员界面模块链接颜色
  • 管理员界面模块选中链接颜色
  • 管理员界面模块链接悬停颜色
  • 管理员界面通用链接颜色
  • 管理员界面通用链接悬停颜色
  • 管理员界面通用链接激活颜色

按钮

  • 管理员界面保存按钮背景颜色
  • 管理员界面保存按钮背景悬停颜色
  • 管理员界面保存按钮文本颜色
  • 管理员界面删除按钮背景颜色
  • 管理员界面删除按钮背景悬停颜色
  • 管理员界面删除按钮文本颜色

相关模态框

  • 管理员界面相关模态框背景颜色
  • 管理员界面相关模态框背景透明度
  • 管理员界面相关模态框边框圆角
  • 管理员界面相关模态框关闭按钮显示

截图

管理员登录

django-admin-interface_login

管理员仪表板

django-admin-interface_dashboard

管理员主题管理

django-admin-interface_themes_management

管理员主题定制

django-admin-interface_theme_customization

本地化

目前,此包已翻译成以下语言: deesfafritplpt_BRtr

翻译成其他语言

  • 运行 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")

语言选择器未显示

我已经启用了 语言选择器,但在管理界面中看不到它,我该怎么做?

您必须正确配置多语言 settingsurls

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 许可证 发布。


支持

  • :star: 在 GitHub 上星标此项目
  • :octocat: 在 GitHub 上关注我
  • :blue_heart: 在 Twitter 上关注我
  • :moneybag: 在 Github 上赞助我

另请参阅

  • 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 - 懒惰的开发者的文件系统实用工具。 🧟‍♂️

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

django_admin_interface-0.28.9.tar.gz (196.8 kB 查看哈希值)

上传时间

构建分发

django_admin_interface-0.28.9-py3-none-any.whl (251.0 kB 查看哈希值)

上传时间 Python 3