AbstractNovadataModel

Classe que implementa extamente as mesmas funcionalidades da NovadataModel, porém, de maneira abstrata

Código da classe:

from .novadata_model import NovadataModel


class AbstractNovadataModel(NovadataModel):
    class Meta:
        """Sub classe para definir meta atributos da classe principal."""

        abstract = True

Exemplo de uso:

from django.db import models
from novadata_utils.models import NovadataModel


class Exemplo(NovadataModel):
    nome = models.CharField(
        verbose_name="Nome",
        max_length=100,
    )

    # Restante dos atributos

    def __str__(self):
        """Método que retorna a representação do objeto como string."""
        return self.nome

    class Meta:
        """Sub classe para definir meta atributos da classe principal."""

        app_label = "core"
        verbose_name = "Exemplo"
        verbose_name_plural = "Exemplos"

Com isso você conseguirá automaticamente ter os campos de data de criação e atualização, além de usuário de criação e atualização, que serão preenchidos automaticamente.

Aviso

A diferença dessa classa para a NovadataModel é que essa classe é abstrata, ou seja, não é possível criar objetos dessa classe diretamente, apenas herdar dela.

Isso faz com que a sua sub classe tenha os campos de data de criação e atualização presentes nela mesma, e não em uma classe pai. Isso é ótimo para projetos que já estão em andamento e o uso de uma herança atrapalharia o andamento do mesmo.