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 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:
... ...