Django - Modelos Dinâmicos

Índice
Em Django classes são objetos Pitão, Como qualquer outro objeto, podemos alcançar muitos efeitos interessantes no momento da execução do programa, graças ao fato de que temos todos os Funções e métodos Python disponível no Django, podemos construir classes que podem gerar classes dinâmicas.
A criação de uma classe dinâmica pode nos fornecer algumas vantagens, como a criação de um modelo a partir de uma classe, gerando assim novas funcionalidades.
Como as aulas funcionam no Framework?
Para chegar ao ponto de gerar modelos dinâmicos, devemos primeiro nos certificar de que entendemos como as classes funcionam em Python.
Sabemos que as aulas em Pitão são objetos que podem ser criados em tempo de execução usando o construtor interno modelo () e receber os detalhes de como devem ser definidos.
Modelos em Django
Como sabemos como as classes funcionam em Python, devemos enfatizar que o modelos em Django são classes Python padrão, mas são declaradas da maneira que Django você pode usá-los e que são classes padrão nos permite gerar modelos em tempo de execução.
Primeira Implementação
Vamos ver a seguinte imagem com um pequeno código:

Aqui vemos como o Framework Django Importamos o módulo de modelos e, em seguida, criamos um método para criar os modelos com o tipo de construtor () que mencionamos no ponto anterior do tutorial.
No entanto, essa abordagem simplista que aplicamos obviamente não vai funcionar, o problema é que o Django espera que um dicionário inclua um módulo com seu código.
Vamos agora ver um código com o qual resolvemos esse problema:
 def create_model (name, module_path): tipo de retorno (name, (models.Model,), {'__module__': module_path}) 

Com essa implementação, eliminamos o primeiro erro que surgiu com o primeiro exemplo.
Adicionar opções de configuração
Vamos completar nosso código para gerar modelos dinâmicos, incluindo a possibilidade de incluirmos as opções de configuração de django, para isso usaremos o Meta classe e vamos sobrescrever sua operação para que nossa nova implementação nos permita redefinir a maneira como vamos lidar com as opções, vamos ver na imagem a seguir o código já concluído para isso:

Neste código, mudamos claramente alguns aspectos do nosso código inicial, começamos definindo que o caminho do módulo é: Django.db.models, a partir daqui vamos obter as definições iniciais, uma vez que isso aconteça, criamos um dicionário onde atribuímos a __módulo__ o valor do caminho que definimos.
Em seguida, retrabalhamos a classe Meta, com isso salvamos os possíveis problemas que discutimos no início deste ponto, finalmente podemos chamar nosso método type (), passando os dados necessários e não erro.
Com este novo conhecimento que geramos, já temos uma base sólida com a qual podemos interagir com o código do Django de forma mais segura, o que nos coloca em uma posição vantajosa para o desenvolvimento de nossas aplicações e a geração de modelos dinamicamente no tempo de execução de nosso programa.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo
wave wave wave wave wave