Communitygithub.com

Ali-Fani/django-unfold-skills

Conjunto de habilidades para agente sobre django-unfold: 22 habilidades especializadas cobrindo ModelAdmin, actions, filters, tabs, componentes, dashboards, temas, segurança e padrões de produção.

O que é django-unfold-skills?

Este conjunto de habilidades capacita um agente de IA (como Claude Code, Cursor ou Codex) a trabalhar eficientemente com django-unfold, uma camada de aprimoramento visual e funcional sobre o django.contrib.admin. Ele fornece um modelo mental claro, dividindo capacidades em camadas: [DJANGO] (mecanismos padrão), [UNFOLD] (recursos adicionais oficiais), [CUSTOM] (código do projeto) e [STUDIO] (recursos pagos). Isso evita que o agente atribua funcionalidades incorretamente ou invente configurações. O conjunto inclui 22 habilidades-filhas dedicadas a tópicos como ModelAdmin, actions (dropdown, row, detail, submit_line), filtros, abas, componentes visuais, dashboards com cards e gráficos, temas de cores, personalização via Tailwind, paginação infinita e integração com command palette. A base é validada contra django-unfold 0.104.1, requer Python ≥3.12 e Django ≥5.2. Instruções práticas sobre herança de classes, ordem de INSTALLED_APPS e extensão segura de templates garantem que o agente implemente soluções corretas, evite armadilhas e recomende a abordagem mais simples (Django puro) quando possível. Links para cada habilidade específica orientam a resolução de necessidades pontuais, como CRUD, operações em lote, filtros ou páginas personalizadas.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add Ali-Fani/django-unfold-skills

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Verificado contra: django-unfold 0.104.1

Documentação: https://unfoldadmin.com/docs/ , https://github.com/unfoldadmin/django-unfold

Dependências: nenhuma. Relacionado: unfold-installation, unfold-modeladmin, unfold-settings, unfold-navigation.

Unfold Core — Modelo Mental & Roteamento

Propósito

Estabelecer o modelo mental correto para o trabalho com Unfold: Unfold é uma camada de reestilização e aprimoramento sobre o django.contrib.admin, não uma substituição. Quase tudo que o Unfold faz é Django admin com novos templates (Tailwind), um dicionário de configurações e recursos opcionais extras (actions, filtros, abas, componentes, paleta de comandos).

Um agente que internalizar as regras de camadas abaixo não atribuirá funcionalidades incorretamente, não lutará contra os mecanismos do Django e não inventará configurações.

Regras de camadas

Cada capacidade pertence exatamente a uma camada:

CamadaO que cobreExemplos
[DJANGO]Mecanismos padrão do admin — Unfold apenas altera a aparêncialist_display, search_fields, fieldsets, inlines, get_queryset(), has_*_permission, dropdown de actions, autocomplete_fields, raw_id_fields, paginação da lista
[UNFOLD]Adições oficiais do Unfold — dicionário de settings, apps contrib, decorators, componentes, mixinsUNFOLD = {...}, unfold.admin.ModelAdmin, @display, @action, unfold.contrib.filters, UnfoldModelAdminViewMixin, BaseComponent, InfinitePaginator, actions_list/row/detail/submit_line, abas, paleta de comandos
[CUSTOM]Código de nível de projeto que o agente escrevetemplates/admin/index.html override, build Tailwind, views personalizadas com formulários, camadas de serviço/queryset, componentes personalizados
[STUDIO]Capacidades do plugin pago Unfold Studiolayout boxed, cabeçalho fixo, sidebar mínima, sidebar escura forçada, banner, navegação aninhada, templates de dashboard. Veja a skill unfold-studio para equivalentes da API pública.

Regra: atribua uma funcionalidade à camada mais baixa que a forneça. Se o Django puro faz, recomende o Django puro.

Tabela de roteamento (qual mecanismo para qual necessidade)

Usuário desejaMecanismoSkill
CRUD para um modeloModelAdmin (Django)unfold-modeladmin
Operação em lote em linhas selecionadasactions (dropdown Django) ou actions_list do Unfoldunfold-actions
Operação em uma linha a partir da listaactions_rowunfold-actions
Operação em um objeto a partir da página de detalhesactions_detailunfold-actions
Botão extra de modo de salvamento no formulário de alteraçãoactions_submit_lineunfold-actions
Diálogo de confirmação antes de uma ação@action(dialog={...})unfold-actions
Painel lateral de filtro no changelistlist_filter (+ classes de filtro do Unfold)unfold-filters
Caixa de pesquisa no changelistsearch_fields (Django)unfold-modeladmin
Marca/título/logo globalconfigurações UNFOLDunfold-settings
Menu lateral com ícones/badgesUNFOLD["SIDEBAR"]unfold-navigation
Abas extras acima do changelist/changeformUNFOLD["TABS"]unfold-tabs
Abas dentro do formulário do changeformfieldsets com classe "tab", inline com tab = Trueunfold-tabs
Página não-CRUD (analytics, wizard)view admin personalizada (UnfoldModelAdminViewMixin)unfold-custom-pages
Página inicial do admin com cards/gráficosDASHBOARD_CALLBACK + override de templates/admin/index.html, ou página personalizadaunfold-dashboard
Objetos relacionados no changeforminlines (Django; classes base do Unfold)unfold-inlines
Agrupamento de campos no changeformfieldsets (Django; Unfold adiciona classes de aba)unfold-modeladmin, unfold-tabs
Lista compacta de campos repetíveisArrayWidgetunfold-fields
Edição de rich textWysiwygWidgetunfold-fields
Mudança visual de cor/temaUNFOLD["COLORS"], BORDER_RADIUS, THEMEunfold-theming
Qualquer coisa além das configurações visualmenteTailwind/override de templateunfold-tailwind
Tabela grande e paginação lentaInfinitePaginatorunfold-performance
Dados de modelo na paleta cmd+KUNFOLD["COMMAND"]unfold-navigation
Tabelas de registros relacionados em linhas do changelist (expansível)list_sections com TableSection/TemplateSectionunfold-modeladmin
Changelist secundário no changeformchange_form_datasets (BaseDataset)unfold-modeladmin

Quando a configuração NÃO é suficiente (implementação personalizada necessária):

  • Qualquer coisa com formulário + POST que não seja um diálogo de ação → página personalizada (unfold-custom-pages).
  • Dashboard mais rico que componentes → override de template de dashboard + Tailwind (unfold-dashboard).
  • Efeitos visuais não expostos como configurações → Tailwind CSS ou override de template (unfold-tailwind, unfold-studio).
  • Lógica de negócio além de mutações simples → camada de serviço, nunca métodos de ModelAdmin (unfold-production).

Regras de ouro

  1. Toda classe admin deve herdar de unfold.admin.ModelAdmin (e todo inline de unfold.admin.TabularInline/StackedInline) ou as páginas serão renderizadas sem estilo. ModelAdmins de terceiros precisam de novo registro com as bases do Unfold.
  2. "unfold" deve vir antes de django.contrib.admin em INSTALLED_APPS. Apps contrib (unfold.contrib.filters, unfold.contrib.forms, unfold.contrib.inlines) vêm imediatamente após.
  3. Unfold não substitui URLs do admin, caminho de templates (admin/base_site.html extends funcionam) ou a maquinaria de permissão do Django — estenda, não lute.
  4. Nunca codifique hardcoded internos do Unfold (nomes de templates além dos componentes documentados, template tags privadas); use apenas configurações/classes documentadas.
  5. Lógica de negócio não vive em ModelAdmin. ModelAdmin é uma camada HTTP/permissões sobre uma camada de serviço. Veja unfold-production.
  6. Unfold muda rapidamente; qualquer coisa se comportando inesperadamente → verifique docs/version-notes.md e a documentação atual antes de depurar mais fundo.

Fatos de versão (verificados)

  • Lançamento PyPI atual: 0.104.1 (este conjunto verificado contra ele).
  • Requer Python ≥3.12, Django ≥5.2 (requires_dist: django>=5.2).
  • Tailwind v4 desde 0.56.0 (quebrou folhas de estilo personalizadas v3).
  • Unfold funciona junto com o admin padrão; adoção incremental é OK.

Skills relacionadas

Carregue unfold-installation para tarefas de configuração; todo o resto roteia a partir da tabela acima.

Habilidades Relacionadas