Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Validação DB

Tem problema eu fazer a checagem com o banco de dados no próprio forms invés do views?

2 respostas
solução!

Olá, Bruno! Como vai?

Você pode, sim, realizar a checagem com o banco de dados diretamente nos formulários, ao invés das views. O Django oferece uma maneira bastante flexível de validação nos formulários, que pode incluir consultas ao banco de dados.

Por exemplo, se você estiver usando um ModelForm, você pode sobrescrever o método clean() ou métodos clean_<fieldname>() para adicionar validações personalizadas. Dentro desses métodos, você pode fazer consultas ao banco de dados para verificar condições específicas.

Aqui está um exemplo prático:

from django import forms
from .models import MeuModelo

class MeuForm(forms.ModelForm):
    class Meta:
        model = MeuModelo
        fields = ['campo1', 'campo2']

    def clean_campo1(self):
        campo1 = self.cleaned_data.get('campo1')
        if MeuModelo.objects.filter(campo1=campo1).exists():
            raise forms.ValidationError('Este valor já existe no banco de dados.')
        return campo1

Neste exemplo, a validação verifica se o valor de campo1 já existe no banco de dados antes de permitir que o formulário seja validado com sucesso.

Essa abordagem pode ser vantajosa porque centraliza a lógica de validação no formulário, tornando o código nas views mais limpo e focado na lógica de controle.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Muito obrigado professor!