3

我的申请表中有一个 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将是正确的。还有其他解决方案吗?

非常感谢。

4

2 回答 2

3

你可能想看看urlparse模块,以避免错过像

>>> 'good_domain.com' in 'http://evildomain.com/mylink#good_domain.com'
True
于 2012-12-02T20:53:20.397 回答
0

我认为最好在您的clean_link方法中使用某种正则表达式(regex)。具体我不是很了解,不过@second提到的urparse模块可能不错,也可以直接使用re模块。不过,您当前的总体策略似乎还不错。

于 2012-12-02T21:19:27.627 回答