Algo estranho está acontecendo. Digamos que tenho um campo definido como:
Project_name = models.CharField(max_length=250, unique=True)
assim Project_name
deve ter um valor único, caso contrário, ele gerará um erro. Então, quero adicionar outra verificação de validação. forms.py
def clean(self):
data = self.cleaned_data
if data["team_member2"] == data["team_member3"]:
raise ValidationError("Can"t have duplicate team members")
No entanto, depois de adicionar essa função, o unique
operador para de trabalhar por algum motivo. Alguma ideia?
Respostas:
1 para resposta № 1Você não está chamando clean
método de superclasse enquanto sobrescreve.
Tente isto:
def clean(self):
data = super(FormClass, self).clean()
if data["team_member2"] == data["team_member3"]:
raise ValidationError("Can"t have duplicate team members")
return data
A partir de documentação:
A chamada para super (ContactForm, self) .clean () no código de exemplo garante que qualquer lógica de validação nas classes pai seja mantida.