Communitygithub.com

Ali-Fani/django-unfold-skills

Suite de compétences d'agent pour django-unfold : 22 compétences expertes couvrant ModelAdmin, actions, filtres, onglets, composants, tableaux de bord, thèmes, sécurité et patrons de production.

Qu'est-ce que django-unfold-skills ?

Cette suite de compétences d'agent spécialisée dans django-unfold fournit un modèle mental complet et un routage précis pour travailler efficacement avec la surcouche d'embellissement et d'extension de l'interface d'administration Django. Elle clarifie la séparation stricte entre les fonctionnalités natives de Django (list_display, permissions, pagination), les ajouts officiels d'Unfold (paramètres UNFOLD, filtres contrib, composants décorateurs), le code personnalisé du projet (surcharges de templates, vues personnalisées) et les capacités payantes d'Unfold Studio (mise en page, barre latérale forcée). Grâce à un tableau de routage détaillé, chaque besoin (CRUD, opérations en masse, filtres, onglets, tableau de bord, thème) est associé au mécanisme et à la compétence appropriés. Les règles d'or – héritage des classes Unfold, ordre dans INSTALLED_APPS, non-remplacement des URLs ou permissions Django – aident à éviter les erreurs courantes. Cette suite est vérifiée pour django-unfold 0.104.1 et fonctionne avec Python ≥3.12 et Django ≥5.2.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add Ali-Fani/django-unfold-skills

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Vérifié pour : django-unfold 0.104.1

Documentation : https://unfoldadmin.com/docs/ , https://github.com/unfoldadmin/django-unfold

Dépendances : aucune. Lié : unfold-installation, unfold-modeladmin, unfold-settings, unfold-navigation.

Noyau Unfold — Modèle mental et routage

Objectif

Établir le bon modèle mental pour le travail avec Unfold : Unfold est une couche de restylage et d'amélioration au-dessus de django.contrib.admin, pas un remplacement. Presque tout ce que fait Unfold est une administration Django avec de nouveaux templates (Tailwind), un dictionnaire de paramètres et des fonctionnalités optionnelles supplémentaires (actions, filtres, onglets, composants, palette de commandes).

Un agent qui internalise les règles de stratification ci-dessous n'attribuera pas mal les fonctionnalités, ne combattra pas les mécanismes de Django et n'inventera pas de configuration.

Règles de stratification

Chaque compétence appartient exactement à une couche :

CoucheCe qu'elle couvreExemples
[DJANGO]Mécanismes standard de l'admin — Unfold ne change que l'apparencelist_display, search_fields, fieldsets, inlines, get_queryset(), has_*_permission, menu déroulant des actions, autocomplete_fields, raw_id_fields, pagination de la liste
[UNFOLD]Ajouts officiels d'Unfold — dictionnaire de paramètres, applications contrib, décorateurs, composants, mixinsUNFOLD = {...}, unfold.admin.ModelAdmin, @display, @action, unfold.contrib.filters, UnfoldModelAdminViewMixin, BaseComponent, InfinitePaginator, actions_list/row/detail/submit_line, onglets, palette de commandes
[CUSTOM]Code au niveau du projet que l'agent écritSurcharge de templates/admin/index.html, construction Tailwind, vues personnalisées avec formulaires, couches service/queryset, composants personnalisés
[STUDIO]Compétences du plugin payant Unfold StudioMise en page en boîte, en-tête fixe, barre latérale minimale, barre latérale sombre forcée, bannière, navigation imbriquée, templates de tableau de bord. Voir la compétence unfold-studio pour les équivalents d'API publique.

Règle : attribuer une fonctionnalité à la couche la plus basse qui la fournit. Si le Django pur le fait, recommander le Django pur.

Table de routage (quel mécanisme pour quel besoin)

L'utilisateur veutMécanismeCompétence
CRUD pour un modèleModelAdmin (Django)unfold-modeladmin
Opération en masse sur les lignes sélectionnéesactions (menu déroulant Django) ou actions_list d'Unfoldunfold-actions
Opération sur une ligne depuis la listeactions_rowunfold-actions
Opération sur un objet depuis sa page de détailactions_detailunfold-actions
Bouton supplémentaire en mode sauvegarde sur le formulaire de modificationactions_submit_lineunfold-actions
Boîte de dialogue de confirmation avant une action@action(dialog={...})unfold-actions
Panneau de filtre latéral sur la liste des modificationslist_filter (+ classes de filtre Unfold)unfold-filters
Champ de recherche sur la liste des modificationssearch_fields (Django)unfold-modeladmin
Marque/titre/logo globalParamètres UNFOLDunfold-settings
Menu latéral avec icônes/badgesUNFOLD["SIDEBAR"]unfold-navigation
Onglets supplémentaires au-dessus de la liste/du formulaire de modificationUNFOLD["TABS"]unfold-tabs
Onglets à l'intérieur du formulaire de modificationfieldsets classe "tab", inline tab = Trueunfold-tabs
Page non-CRUD (analytiques, assistant)vue d'administration personnalisée (UnfoldModelAdminViewMixin)unfold-custom-pages
Page d'accueil de l'admin avec cartes/graphiquesDASHBOARD_CALLBACK + surcharge de templates/admin/index.html, ou page personnaliséeunfold-dashboard
Objets liés sur le formulaire de modificationinlines (Django ; classes de base Unfold)unfold-inlines
Regroupement de champs sur le formulaire de modificationfieldsets (Django ; Unfold ajoute des classes d'onglets)unfold-modeladmin, unfold-tabs
Liste de champs répétable et compacteArrayWidgetunfold-fields
Édition de texte enrichiWysiwygWidgetunfold-fields
Changement visuel de couleur/thèmeUNFOLD["COLORS"], BORDER_RADIUS, THEMEunfold-theming
Tout ce qui dépasse visuellement les paramètresSurcharge Tailwind/templateunfold-tailwind
Tableau volumineux à pagination lenteInfinitePaginatorunfold-performance
Données du modèle dans la palette cmd+KUNFOLD["COMMAND"]unfold-navigation
Tableaux d'enregistrements liés dans les lignes de la liste (extensibles)list_sections avec TableSection/TemplateSectionunfold-modeladmin
Liste de modifications secondaire sur le formulaire de modificationchange_form_datasets (BaseDataset)unfold-modeladmin

Quand la configuration ne suffit PAS (implémentation personnalisée nécessaire) :

  • Tout ce qui implique un formulaire + POST qui n'est pas une boîte de dialogue d'action → page personnalisée (unfold-custom-pages).
  • Tableau de bord plus riche que les composants → surcharge du template du tableau de bord + Tailwind (unfold-dashboard).
  • Effets visuels non exposés comme paramètres → Tailwind CSS ou surcharge de template (unfold-tailwind, unfold-studio).
  • Logique métier au-delà de simples mutations → couche de service, jamais les méthodes de ModelAdmin (unfold-production).

Règles d'or

  1. Chaque classe d'administration doit hériter de unfold.admin.ModelAdmin (et chaque inline de unfold.admin.TabularInline/StackedInline) sinon les pages s'affichent sans style. Les ModelAdmins tiers nécessitent une ré-enregistrement avec les bases Unfold.
  2. "unfold" doit être placé avant django.contrib.admin dans INSTALLED_APPS. Les applications contrib (unfold.contrib.filters, unfold.contrib.forms, unfold.contrib.inlines) viennent immédiatement après.
  3. Unfold ne remplace pas les URLs de l'admin, le chemin des templates (admin/base_site.html les extensions fonctionnent) ou les mécanismes de permissions de Django — étendre, ne pas combattre.
  4. Ne jamais coder en dur les éléments internes d'Unfold (noms de templates au-delà des composants documentés, balises de template privées) ; utiliser uniquement les paramètres/classes documentés.
  5. La logique métier ne vit pas dans ModelAdmin. ModelAdmin est une couche HTTP/permissions au-dessus d'une couche de service. Voir unfold-production.
  6. Unfold évolue rapidement ; tout comportement inattendu → consulter docs/version-notes.md et la documentation actuelle avant de déboguer plus en profondeur.

Faits de version (vérifiés)

  • Version PyPI actuelle : 0.104.1 (cette suite vérifiée pour celle-ci).
  • Nécessite Python ≥3.12, Django ≥5.2 (requires_dist: django>=5.2).
  • Tailwind v4 depuis 0.56.0 (a cassé les feuilles de style personnalisées v3).
  • Unfold fonctionne aux côtés de l'admin par défaut ; adoption incrémentielle possible.

Compétences liées

Charger unfold-installation pour les tâches de configuration ; tout le reste est acheminé à partir du tableau ci-dessus.

Skills associés