Commit 3acf26d5d3d60a5c2ed212a3578fbf3dd14d4fa7
1 parent
18ecd386
Exists in
master
and in
5 other branches
URL validation updated and finished [Issue:#120]
Showing
1 changed file
with
10 additions
and
4 deletions
Show diff stats
links/forms.py
1 | 1 | from django import forms |
2 | 2 | from .models import Link |
3 | -import validators | |
3 | +from django.utils.translation import ugettext_lazy as _ | |
4 | +from django.core.exceptions import ValidationError, FieldError | |
5 | +import requests | |
4 | 6 | |
5 | 7 | class CreateLinkForm(forms.ModelForm): |
6 | 8 | |
7 | - def clean_link(self): | |
9 | + def clean_link_url(self): | |
8 | 10 | link_url = self.cleaned_data['link_url'] |
9 | - if not validators.url(link_url): | |
10 | - raise forms.ValidationError(_('Please enter a valid URL')) | |
11 | + try: | |
12 | + response = requests.head(link_url) | |
13 | + if response.status_code >= 400: | |
14 | + raise forms.ValidationError(_('Invalid url!')) | |
15 | + except requests.ConnectionError: | |
16 | + raise forms.ValidationError(_('Invalid url!')) | |
11 | 17 | return link_url |
12 | 18 | |
13 | 19 | class Meta: | ... | ... |