/ / Conflicto de validación de formularios de Django - django, formularios, validación, modelo

Conflicto de validación de formularios de Django - django, formularios, validación, modelo

Algo raro está sucediendo. Digamos que tengo un campo definido como:

Project_name = models.CharField(max_length=250, unique=True)

Asi que Project_name debe tener un valor único; de lo contrario, arrojará un error. Luego, quiero agregar otra comprobación de validación. Entonces, en mi forms.py

def clean(self):
data = self.cleaned_data
if data["team_member2"] == data["team_member3"]:
raise ValidationError("Can"t have duplicate team members")

Sin embargo, una vez que agrego esta función, el unique El operador deja de funcionar por alguna razón. ¿Algunas ideas?

Respuestas

1 para la respuesta № 1

Usted no está llamando clean método de superclase mientras se anula.

Prueba esto:

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

De documentación:

La llamada a super (ContactForm, self) .clean () en el código de ejemplo asegura que se mantenga cualquier lógica de validación en las clases primarias.