Metadados

Metadados são "dados sobre dados". Eles descrevem as características ou atributos de um objeto ou classe, fornecendo informações adicionais, mas não alteram diretamente o dado principal. por exemplo: Um campo de formulário (o dado principal) pode ter metadados como rótulos, mensagens de erro e tamanhos específicos. Um modelo de banco de dados pode ter metadados indicando como os dados serão ordenados ou armazenados.

A classe Meta no Django é uma subclasse (classe aninhada) usada para definir metadados (informações adicionais) de uma classe principal. Permitindo a personalização sem alterar diretamente a lógica principal.

meta.py
class Produto(models.Model):
    nome = models.CharField(max_length=100)
    preco = models.DecimalField(max_digits=10, decimal_places=2)

    class Meta:

        # Define a ordem padrão em que os objetos do modelo serão recuperados ao realizar consultas no banco de dados.
        ordering = ['preco']

        # Define o nome plural do modelo em interfaces como o Django Admin
        verbose_name_plural = 'Produtos'

        # Define o nome da tabela no banco de dados 
        db_table = 'produto'

Essas opções não alteram diretamente os campos do modelo, mas sim o comportamento geral dele, como nome, ordenação, permissões e mais.