Otimizando, modulando e simplificando o "admin.py"

Compartilhando …

Espero com isso contribuir para uma codificação mais simples.

""" Docstring """
from django.contrib import admin
from .models import (Banco,
                     Armazenamento,
                     Assunto,
                     # Compra_HD, Esses
                     # Compra,
                     # TelefoneContato,
                     Colaborador,
                     TipoArmazenamento,
                     TipoOperadora,
                     TipoPagamento,
                     TipoParceiro,
                     TipoPedido,
                     TipoPessoa,
                     TipoTelefone,
                     Unidade,
                     Usuario)


# {<modelo>: [(list_display), (search_fields), (list_filter)]}
tabelas_dominios_models: dict = {'Armazenamento': [('codigo_tipo_armazenamento', 'numero_serie_armazenamento', 'numero_serie_produto'), (), ()],
                                 'Banco': [('numero', 'nome_razao_social', 'url'), ('nome_razao_social',), ('nome_razao_social',)],
                                 'Assunto': [('codigo', 'descricao'), (), ()],
                                 'Colaborador': [('matricula', 'nome'), (), ()],
                                 'TipoArmazenamento': [('codigo', 'descricao'), (), ()],
                                 'TipoOperadora': [('codigo', 'descricao'), (), ()],
                                 'TipoPagamento': [('codigo', 'descricao'), (), ()],
                                 'TipoParceiro': [('codigo', 'descricao'), (), ()],
                                 'TipoPedido': [('codigo', 'descricao'), (), ()],
                                 'TipoPessoa': [('codigo', 'descricao'), (), ()],
                                 'TipoTelefone': [('codigo', 'descricao'), (), ()],
                                 'Unidade': [('codigo', 'descricao'), ('descricao', ), ('descricao', )],
                                 'Usuario': [('matricula', 'nome', 'data_cadastramento'), (), ()]
                                 }

for _ in tabelas_dominios_models:
    @admin.register(eval(_))
    class TabelaDominioAdmin(admin.ModelAdmin):
        list_display: tuple = tabelas_dominios_models[_][0]
        search_fields: tuple = tabelas_dominios_models[_][1]
        list_filter: tuple = tabelas_dominios_models[_][2]