girl - formularios django
Django: ¿Cómo puedo poner un hipervínculo<a> en un error de validación de django desde un método de limpieza de formularios()? (2)
Llame a mark_safe
en la cadena del mensaje de error cuando está levantando el ValidationError
Django: ¿Cómo puedo poner un hipervínculo <a>
en un error de validación de django desde un método de limpieza de formularios ()? Deseo generar un error de validación y, en el texto de error, un hipervínculo <a href=""></a>
que tiene un enlace que ayudaría al usuario a corregir el error. Este es un error de validación que estoy planteando en un método limpio de una forma. ¿Hay alguna manera de marcar el HTML para que el error de validación sea seguro para que salga como HTML?
Puede hacerlo en la definición del campo de formulario sin necesidad de elevar un nivel de formulario ValidationError como sigue:
class RegistrationForm(ModelForm):
...
### Django established methods
# form wide cleaning/validation
def clean_email(self):
""" prevent users from having same emails """
email = self.cleaned_data["email"]
try:
User.objects.get(email__iexact=email)
raise forms.ValidationError(
mark_safe((''A user with that email already exists, click this <a href="{0}">Password Reset</a> link''
'' to recover your account.'').format(urlresolvers.reverse(''PasswordResetView'')))
)
except User.DoesNotExist:
return email
...
### Additional fields
location = forms.RegexField(max_length=255,
regex=r"^[/w'' -]+, [/w''-]+, [/w''-]+, [/w''-]+$", #ex 1 Mclure St, Kingston, Ontario, Canada
help_text="location, ex: Suite 212 - 1 Main St, Toronto, Ontario, Canada",
error_messages={
''invalid'': mark_safe("Input format: <strong>suite - street</strong>, <strong>city</strong>, "
"<strong>province/state</strong>, <strong><u>country</u></strong>. Only letters, "
"numbers, and ''-'' allowed.")})