如何验证URLField是否来自Django中的所需域?

时间:2012-12-02 19:07:05

标签: django forms

我的申请表格中有一个URLField,我想检查给定的URL是否来自www.domain.com。

现在我在该领域的干净方法中使用此解决方案,但我认为这不是最好的...

    def clean_link(self):
    link = self.cleaned_data['link']
    if 'domain.com' not in link:
        raise forms.ValidationError('You only can add a domain.com URL.')

    return link

例如,如果我输入http://www.thisismydomain.com则是正确的。还有其他方法吗?

非常感谢。

2 个答案:

答案 0 :(得分:3)

您可能希望查看urlparse模块,以避免错过

>>> 'good_domain.com' in 'http://evildomain.com/mylink#good_domain.com'
True

答案 1 :(得分:0)

我认为最好在clean_link方法中使用某种正则表达式(正则表达式)。我不太详细了解它,但@second提到的urparse模块可能不错,或者您可以使用re模块。你现在的整体策略似乎很好。