我在forms.py
中有一条错误消息将其传递给模板,但模板呈现为字符串而不是html标记。
在forms.py
message = ("The email address is already taken. Please <a href='#'> log in. </a>"
def clean_email(self):
email = self.cleaned_data['email']
try:
User.objects.get_by_natural_key(email)
except User.DoesNotExist:
return email
raise forms.ValidationError(message)
在模板中
<span class="error">{{form.email.errors|safe}}</span>
但是这样做呈现为&#39;电子邮件地址已被采用。请<a href='#'>
登录。</a>
&#39;不是&#39;
电子邮件地址已被删除。请登录。&#39;
我尝试了autoescape代码{% autoescape off%}{{form.email.errors|safe}}{% endautoescape%}
,但这也不起作用。
我错过了什么?提前谢谢。
答案 0 :(得分:3)
你应该尝试:
raise forms.ValidationError(mark_safe(message))
有关详细信息,请参阅mark_safe文档https://docs.djangoproject.com/en/1.7/ref/utils/#django.utils.safestring.mark_safe