SuperAPI AI 工具集

unfold-admin

前端与建站

查看项目

更新于 10-13 17:13

技能介绍

Django Unfold 是一个现代 Django 后台管理主题,使用 Tailwind CSS、HTMX 和 Alpine.js 构建,用精致且功能丰富的界面替换 Django 默认 admin。本技能用于构建、配置和增强基于 Unfold 的 Django admin 界面。

【用途】 适用于 Django admin UI 定制、站点配置、模型注册、列表显示增强、操作与筛选、表单组件覆盖、内联管理、仪表盘组件构建等任务。

【主要能力】

  1. 站点配置:通过 settings 中的 UNFOLD 字典配置 SITE_TITLE、SITE_HEADER、SITE_SYMBOL 以及侧边栏导航(SIDEBAR)等。
  2. 模型注册:继承 unfold.admin.ModelAdmin,即可获得 Unfold 样式。
  3. 列表展示增强:使用 @display 装饰器实现彩色状态标签、带头像的丰富表头、交互式下拉菜单、布尔勾选标记等。
  4. 操作按钮:@action 装饰器支持列表操作、行操作、详情操作、提交行操作,并可设置图标、变体、权限,以及通过 actions_list 配置操作组(下拉菜单)。
  5. 筛选器:提供 RangeNumericFilter、RangeDateFilter、ChoicesCheckboxFilter、RelatedDropdownFilter、BooleanRadioFilter 等高级筛选类,并支持自定义 TextFilter。
  6. 表单组件:提供大量 Unfold 表单组件类,如 UnfoldAdminTextInputWidget、UnfoldAdminSelect2Widget、UnfoldBooleanSwitchWidget、WysiwygWidget、ArrayWidget 等,并支持图标前缀后缀。
  7. 内联管理:Unfold 的 TabularInline 和 StackedInline 支持标签页、分页、排序、非关联内联,以及通过 classes: ["tab"] 将字段集分组为标签页。
  8. 仪表盘组件:通过 @register_component 和 BaseComponent 构建 KPI 卡片和自定义仪表盘部件,可配置 DASHBOARD_CALLBACK。
  9. 区块与数据集:list_sections 可在列表页嵌入关联数据面板(TableSection、TemplateSection);change_form_datasets 可在编辑表单中嵌入模型列表(BaseDataset)。
  10. 分页:支持 InfinitePaginator 无限滚动分页。
  11. 第三方集成:为 django-import-export、django-guardian、django-simple-history、django-constance、django-location-field 提供样式化封装;兼容 django-modeltranslation、django-celery-beat、django-money、djangoql、django-crispy-forms。多继承时 Unfold ModelAdmin 应放在最后。
  12. 内置模板组件:提供 Card、Bar Chart、Line Chart、Progress、Table、Button、Tracker、Cohort 等可复用组件。
  13. 用户管理表单:提供 AdminPasswordChangeForm、UserChangeForm、UserCreationForm 的样式化版本。

【使用方式】 安装:在 INSTALLED_APPS 中将 unfold 及所需 unfold.contrib 模块放在 django.contrib.admin 之前,例如: INSTALLED_APPS = [ "unfold", "unfold.contrib.filters", "unfold.contrib.forms", "unfold.contrib.inlines", "unfold.contrib.import_export", "unfold.contrib.guardian", "unfold.contrib.simple_history", "unfold.contrib.constance", "unfold.contrib.location_field", # ... "django.contrib.admin", ] 注册模型时继承 unfold.admin.ModelAdmin 并可在 settings 中通过 UNFOLD 字典或自定义 AdminSite 进行站点配置。构建界面时可按以下顺序:配置站点(UNFOLD 设置字典,含品牌、侧边栏、主题)→ 注册模型(继承 unfold.admin.ModelAdmin)→ 增强显示(@display 装饰器)→ 添加操作(@action 装饰器,支持列表/行/详情/提交行)→ 配置筛选(使用 Unfold 筛选类)→ 覆盖组件(formfield_overrides)→ 设置内联(Unfold 内联类,支持标签页、分页、排序)→ 构建仪表盘(@register_component + BaseComponent)。详细配置可参考技能内 references/configuration.md、references/actions-filters.md、references/widgets-inlines.md、references/dashboard.md、references/resources.md。

【适用场景】 需要为 Django 项目构建现代、功能丰富的后台管理界面;需要定制 admin 品牌、侧边栏和主题;需要增强列表展示、操作按钮、筛选器和表单组件;需要集成导入导出、权限、历史记录等第三方库;需要构建自定义仪表盘和 KPI 卡片。

【限制】 本资料未提供收费、价格和授权方式信息;未提供对各 Django 版本或 Python 版本的具体兼容范围;未提供部署或性能相关的具体说明。使用前请查阅官方文档确认版本兼容性。

官方资源:文档 https://unfoldadmin.com/docs/ ;GitHub https://github.com/unfoldadmin/django-unfold ;演示应用 https://github.com/unfoldadmin/formula ;在线演示 https://demo.unfoldadmin.com ;图标库 Material Symbols https://fonts.google.com/icons 。