Tem problema eu fazer a checagem com o banco de dados no próprio forms invés do views?
Tem problema eu fazer a checagem com o banco de dados no próprio forms invés do views?
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!
Muito obrigado professor!