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 | from django import forms | 1 | from django import forms |
2 | from .models import Link | 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 | class CreateLinkForm(forms.ModelForm): | 7 | class CreateLinkForm(forms.ModelForm): |
6 | 8 | ||
7 | - def clean_link(self): | 9 | + def clean_link_url(self): |
8 | link_url = self.cleaned_data['link_url'] | 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 | return link_url | 17 | return link_url |
12 | 18 | ||
13 | class Meta: | 19 | class Meta: |