Compatibilidade¶
v0.1 — leia isto primeiro
django-yp-admin é um tema com tecnologia htmx + helpers para django.contrib.admin, não um substituto completo. A suíte de testes atual (105 testes) exercita o tema, os helpers e uma fatia fina das integrações opcionais. As alegações de compatibilidade abaixo descrevem intenção de design, não garantias validadas por testes de regressão.
Esta página documenta o que é preservado por design, o que se sabe que quebra e o que ainda não está suportado.
O que é preservado (por design)¶
Estas são escolhas de design intencionais. Ainda não são cobertas por testes de regressão com terceiros — por favor abra issues se você encontrar um quebra.
- API de
ModelAdmin.django_yp_admin.options.ModelAdminherda dedjango.contrib.admin.ModelAdmin. A intenção é que toda opção padrão (fieldsets,inlines,readonly_fields,prepopulated_fields,formfield_overrides,get_queryset, …) continue funcionando. AdminSitepadrão. Usamosdjango.contrib.admin.sitediretamente. Não entregamos nossa própria subclasse deAdminSite.- Classes CSS legadas.
.module,.results,.changelist,.submit-row,.inline-group,.empty-form,.row1,.row2, etc. continuam como hooks do DOM. Os estilos do Picnic são aplicados em paralelo. - Nomes de
{% block %}em templates.content,extrahead,extrastyle,branding,nav-global,breadcrumbs,object-tools,pagination— preservados. - Contrato de URL de
AutocompleteJsonView. Mesmo path, mesmo formato JSON ({"results": [...], "pagination": {"more": ...}}).
O que se sabe que quebra¶
django.jQuery. O global se foi. JS que chamavadjango.jQuery(...)vai falhar. Migre para APIs vanilla do DOM ou atributos de htmx.- Widgets de jQuery UI. SortableJS / jQuery UI Sortable, widgets de calendário/relógio em popup foram substituídos por HTML5 Drag & Drop,
<input type="date">,<input type="time">. Drop-in para o usuário final; quebra para extensões JS. - Select2. Substituído pelo Tom Select. Código de inicialização customizado do Select2 não vai rodar.
Roadmap / Ainda não suportado¶
O seguinte está no roadmap mas ainda não testado ou validado. Se seu projeto depende disso, fique no django.contrib.admin por enquanto.
Subclasses personalizadas de AdminSite¶
Atualmente miramos no admin.site padrão. Projetos que herdam de AdminSite (login customizado, index customizado, configurações multi-site) estão não testados.
Pacotes de admin de terceiros¶
Estes antes apareciam como "compatibilidade testada". Era aspiracional. Ainda não estão validados:
- django-reversion —
VersionAdminponta a ponta. - django-import-export —
ImportExportModelAdminponta a ponta (existe integração básica via o extra[import-export], mas o uso no mundo real não está verificado). - django-guardian —
GuardedModelAdmin. - django-polymorphic —
PolymorphicChildModelAdmin. - django-modeltranslation — abas do admin.
- django-nested-admin, django-admin-sortable2, django-admin-rangefilter, django-autocomplete-light, django-filter — a coexistência com nossas reimplementações não está verificada.
Frameworks que trazem seu próprio admin¶
- django-cms — páginas do admin e toolbar.
- wagtail — o admin do Wagtail vive em uma URL separada mas compartilha alguns templates/static; não testado.
- allauth — páginas do admin e UI de gestão de contas.
Temas de terceiros¶
Temas que miram nas classes CSS legadas do admin devem continuar renderizando já que preservamos esses hooks — mas não fizemos testes de regressão com nenhum tema específico. Espere arestas onde o Picnic e o CSS do tema interagem.
Guia de migração (para o caminho suportado)¶
Melhor encaixe hoje: um projeto que usa django.contrib.admin padrão com subclasses padrão de ModelAdmin, sem subclasse de AdminSite, e sem pacotes de admin de terceiros das listas acima.
- Adicione
django_yp_adminantes dedjango.contrib.adminemINSTALLED_APPS. - Adicione
django_htmxedjango_htmx.middleware.HtmxMiddleware. - Visite
/admin/. Os admins padrão devem renderizar com o novo tema. - Procure
django.jQueryno projeto — substitua qualquer ocorrência por JS vanilla. - Opcional: troque
from django.contrib.admin import ModelAdminporfrom django_yp_admin.options import ModelAdminpara ativar filtros e widgets nativos de htmx por modelo.
Relatórios de compatibilidade do mundo real contra AdminSite customizados e pacotes de terceiros são especialmente bem-vindos — por favor abra issues.