Commit 3acf26d5d3d60a5c2ed212a3578fbf3dd14d4fa7

Authored by Gustavo Bernardo
1 parent 18ecd386

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: