使用自定义验证覆盖 URLField 的验证

the*_*ist 8 python regex django

如何使用自定义验证覆盖 django 的 URLField 验证?应该在哪里完成此操作?

我希望它也接受没有域名结尾的网址。

sch*_*cki 7

这是 Django 的URL 字段验证器。向其提供您的自定义正则表达式 myregex。但是,您需要阻止 UrlField 默认验证,因为这不是您想要的。

因此,创建您的自定义字段,如下所示:然后对于您的模型/表单,将其提供给该字段,如下所示:

from django.forms import UrlField as DefaultUrlField
class UrlField(DefaultUrlField):
    default_validators = [URLValidator(regex=myregex)]
Run Code Online (Sandbox Code Playgroud)

然后在您的表单中执行以下操作:

my_url_field = UrlField()
Run Code Online (Sandbox Code Playgroud)