From 3acf26d5d3d60a5c2ed212a3578fbf3dd14d4fa7 Mon Sep 17 00:00:00 2001 From: Gustavo Bernardo Date: Fri, 28 Oct 2016 13:07:38 -0300 Subject: [PATCH] URL validation updated and finished [Issue:#120] --- links/forms.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/links/forms.py b/links/forms.py index 232c4f3..81fb016 100644 --- a/links/forms.py +++ b/links/forms.py @@ -1,13 +1,19 @@ from django import forms from .models import Link -import validators +from django.utils.translation import ugettext_lazy as _ +from django.core.exceptions import ValidationError, FieldError +import requests class CreateLinkForm(forms.ModelForm): - def clean_link(self): + def clean_link_url(self): link_url = self.cleaned_data['link_url'] - if not validators.url(link_url): - raise forms.ValidationError(_('Please enter a valid URL')) + try: + response = requests.head(link_url) + if response.status_code >= 400: + raise forms.ValidationError(_('Invalid url!')) + except requests.ConnectionError: + raise forms.ValidationError(_('Invalid url!')) return link_url class Meta: -- libgit2 0.21.2