NovadataModelAdmin

Classe para facilitar a criação de um ModelAdmin, implmentando diversas funcionalidades, como: list_display, search_fields, list_filter, autocomplete_fields, list_select_related, filter_horizontal exclude e advanced_filter_fields, todos automáticos.

O pacote considera o tipo dos campos e mapeia automaticamente os mesmos para suas respectivas propriedades. Você pode encontrar a lista de mapeamento neste arquivo do repositório.

Além disso, ele atua em conjunto com outros pacotes, implementando algumas funcionalidades interessantes. Segue a lista:

  1. list_display

  2. search_fields

  3. list_filter

Alguns tipos de campos são modificados aqui, segue a lista:

  1. Foreign keys

Campos ForeignKey são modificados para um campo de busca, com autocomplete, se utilizando do pacote django_admin_listfilter_dropdown, todos os campos desse tipo são feitos com a classe RelatedOnlyDropdownFilter.

  1. Campos com choices

Campos com choices são modificados para um campo de busca, com autocomplete, se utilizando do pacote django_admin_listfilter_dropdown, todos os campos desse tipo são feitos com a classe ChoiceDropdownFilter.

  1. Datas

Campos DateField e DateTimeField são modificados para um campo de busca, com autocomplete, se utilizando do pacote rangefilter, todos os campos desses tipos são feitos com a função DateRangeQuickSelectListFilterBuilder.

  1. Numéricos

Campos DecimalField, IntegerField e PositiveIntegerField são modificados para um campo de busca, com autocomplete, se utilizando do pacote rangefilter, todos os campos desses tipos são feitos com a função NumericRangeFilterBuilder.

  1. autocomplete_fields

  2. list_select_related

  3. filter_horizontal

  4. exclude

  5. advanced_filter_fields

Exemplo:

from django.contrib import admin
from novadata_utils.admin import NovadataModelAdmin

from ..models import Exemplo


@admin.register(Exemplo)
class ExemploAdmin(NovadataModelAdmin):
    ...

Saída:

ExampleNovadataModelAdmin1
ExampleNovadataModelAdmin2
ExampleNovadataModelAdmin3
ExampleNovadataModelAdmin4