Communitygithub.com

Ali-Fani/django-unfold-skills

django-unfold 的代理技能套件:22 個專家級技能,涵蓋 ModelAdmin、動作、篩選器、分頁、元件、儀表板、主題、安全性及生產模式。

django-unfold-skills 是什麼?

此技能套件為 django-unfold(一個為 Django 管理後台提供現代化介面與增強功能的外層套件)提供完整的 AI 代理支援。它包含 22 個專家級技能,涵蓋從 ModelAdmin 設定、動作(actions)、篩選器(filters)、分頁(tabs)到元件(components)、儀表板(dashboard)、主題(theming)與生產模式(production patterns)等所有範疇。由於 Unfold 本質上是對 `django.contrib.admin` 的重新樣式化與功能增強層,本套件首先建立一個核心心智模型,清楚劃分功能歸屬於 Django 自身層級、Unfold 官方層級、自訂專案層級或付費 Unfold Studio 層級,以避免常見的歸屬錯誤。透過一個詳盡的路由表,代理可以快速查找特定使用者需求(例如批次操作、側邊篩選器、儀表板)應使用哪個機制與技能,並明確指出何時必須採用自訂實作(例如含表單 POST 的頁面)。此外,套件還列出多個黃金規則,例如每個管理類別都必須繼承 Unfold 的基底類別、`unfold` 必須在 `INSTALLED_APPS` 中置於 `django.contrib.admin` 之前,以及業務邏輯不應寫在 ModelAdmin 中。此技能套件適用於所有支援 markdown 技能的 AI 代理平台(如 Claude Code、Cursor、Codex),能大幅提升開發者使用 django-unfold 的效率與正確性。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add Ali-Fani/django-unfold-skills

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

已驗證版本:django-unfold 0.104.1

文件:https://unfoldadmin.com/docs/ 、 https://github.com/unfoldadmin/django-unfold

相依性:無。相關技能:unfold-installation、unfold-modeladmin、unfold-settings、unfold-navigation。

Unfold 核心 — 心智模型與路由

目的

為 Unfold 相關工作建立正確的心智模型:Unfold 是 django.contrib.admin 的重新樣式化與增強層,並非取代品。Unfold 所做的一切幾乎都是 Django admin 搭配新的模板(Tailwind)、一個設定字典及額外的選擇性功能(動作、篩選器、分頁、元件、命令面板)。

能夠內化以下分層規則的代理,將不會錯誤歸因功能、對抗 Django 機制或憑空創造設定。

分層規則

每個功能都只屬於一個層級:

層級涵蓋內容範例
[DJANGO]標準 admin 機制 — Unfold 僅改變外觀list_display、search_fields、fieldsets、inlines、get_queryset()、has_*_permission、動作下拉選單、autocomplete_fields、raw_id_fields、列表分頁
[UNFOLD]Unfold 官方新增功能 — 設定字典、貢獻應用程式、裝飾器、元件、混入類別UNFOLD = {...}、unfold.admin.ModelAdmin、@display、@action、unfold.contrib.filters、UnfoldModelAdminViewMixin、BaseComponent、InfinitePaginator、actions_list/row/detail/submit_line、分頁、命令面板
[CUSTOM]代理編寫的專案層級程式碼templates/admin/index.html 覆寫、Tailwind 建置、含表單的自訂檢視、服務層/查詢集層、自訂元件
[STUDIO]付費 Unfold Studio 外掛功能盒狀佈局、固定頂部、最小側邊欄、強制深色側邊欄、橫幅、巢狀導覽、儀表板模板。請參閱 unfold-studio 技能以取得公開 API 等效功能。

規則:將功能歸屬於提供它的最低層級。如果純 Django 就能做到,則建議使用純 Django。

路由表(哪個機制對應哪個需求)

使用者想要機制技能
模型的 CRUDModelAdmin(Django)unfold-modeladmin
對選取行執行批次操作actions(Django 下拉選單)或 Unfold actions_listunfold-actions
從列表對單一行執行操作actions_rowunfold-actions
從詳細頁面對單一物件執行操作actions_detailunfold-actions
變更表單上的額外儲存模式按鈕actions_submit_lineunfold-actions
動作前的確認對話框@action(dialog={...})unfold-actions
變更列表上的篩選器/側邊面板list_filter(+ Unfold 篩選器類別)unfold-filters
變更列表上的搜尋框search_fields(Django)unfold-modeladmin
全局品牌/標題/標誌UNFOLD 設定unfold-settings
附圖示/徽章的側邊欄選單UNFOLD["SIDEBAR"]unfold-navigation
變更列表/變更表單上方的額外分頁UNFOLD["TABS"]unfold-tabs
變更表單內部的分頁fieldsets "tab" 類別、inline tab = Trueunfold-tabs
非 CRUD 頁面(分析、精靈)自訂 admin 檢視(UnfoldModelAdminViewMixin)unfold-custom-pages
附卡片/圖表的 admin 登陸頁面DASHBOARD_CALLBACK + 覆寫 templates/admin/index.html 或自訂頁面unfold-dashboard
變更表單上的關聯物件inlines(Django;Unfold 基底類別)unfold-inlines
變更表單欄位分組fieldsets(Django;Unfold 新增分頁類別)unfold-modeladmin、unfold-tabs
緊湊的可重複欄位列表ArrayWidgetunfold-fields
富文本編輯WysiwygWidgetunfold-fields
視覺色彩/主題變更UNFOLD["COLORS"]、BORDER_RADIUS、THEMEunfold-theming
超出設定的視覺效果Tailwind/模板覆寫unfold-tailwind
大型表格緩慢分頁InfinitePaginatorunfold-performance
命令面板(cmd+K)中的模型資料UNFOLD["COMMAND"]unfold-navigation
變更列表行中的關聯記錄表格(可展開)搭配 TableSection/TemplateSection 的 list_sectionsunfold-modelmain
變更表單上的次要變更列表change_form_datasets(BaseDataset)unfold-modelmain

當設定不足時(需要自訂實作):

  • 任何包含表單 + POST 且非動作對話框的項目 → 自訂頁面(unfold-custom-pages)。
  • 比元件更豐富的儀表板 → 儀表板模板覆寫 + Tailwind(unfold-dashboard)。
  • 未以設定方式暴露的視覺效果 → Tailwind CSS 或模板覆寫(unfold-tailwind、unfold-studio)。
  • 超出簡單突變的業務邏輯 → 服務層,絕非 ModelAdmin 方法(unfold-production)。

黃金規則

  1. 每個管理類別都必須繼承 unfold.admin.ModelAdmin(而每個 inline 則必須繼承 unfold.admin.TabularInline/StackedInline),否則頁面將無法套用樣式。第三方 ModelAdmin 需要使用 Unfold 基底類別重新註冊。
  2. "unfold" 必須放在 INSTALLED_APPS 中的 django.contrib.admin 之前。貢獻應用程式(unfold.contrib.filters、unfold.contrib.forms、unfold.contrib.inlines)應緊接其後。
  3. Unfold 不會取代 admin URL、模板路徑(admin/base_site.html 的擴充仍可運作)或 Django 的權限機制 — 應擴充而非對抗。
  4. 切勿硬編碼 Unfold 內部細節(超出文件說明元件的模板名稱、私有模板標籤);僅使用文件說明的設定/類別。
  5. 業務邏輯不應存在於 ModelAdmin 中。ModelAdmin 是服務層之上的 HTTP/權限層。請參閱 unfold-production。
  6. Unfold 變更速度快;任何非預期行為 → 在深入除錯前,先檢查 docs/version-notes.md 及目前文件。

版本資訊(已驗證)

  • 目前 PyPI 版本:0.104.1(本套件已針對此版本驗證)。
  • 需要 Python ≥3.12、Django ≥5.2(requires_dist: django>=5.2)。
  • 自 0.56.0 起使用 Tailwind v4(破壞了 v3 的自訂樣式表)。
  • Unfold 可與預設 admin 並存;可逐步採用。

相關技能

載入 unfold-installation 以進行設定任務;其他所有需求請從上方的路由表查找。

相關技能