当前位置:  开发笔记 > 后端 > 正文

Django:如何从表单clean()方法中的django验证错误中添加<a>超链接?

如何解决《Django:如何从表单clean()方法中的django验证错误中添加<a>超链接?》经验,为你挑选了2个好方法。

Django:如何从表单clean()方法中将django验证错误中的超链接放入?我想提出验证错误,并在错误文本中有一个超链接,其中包含一个链接,可以帮助用户更正错误.这是我在表单的干净方法中提出的验证错误.有没有办法将该验证错误的HTML标记为可以安全地输出为HTML?



1> Jonny Buchan..:

mark_safe当你举起时,请调用错误消息字符串ValidationError


`来自django.utils.safestring import mark_safe`(Django 1.10)

2> Daniel Sokol..:

您可以在表单字段定义上执行此操作,而无需像这样提出表单级别ValidationError:

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 Password Reset 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: suite - street, city, " 
                                "province/state, country. Only letters, "
                                "numbers, and '-' allowed.")})

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有