From 4ad6f599cdcebc34e9f32a5ab8eaf44a3845ed21 Mon Sep 17 00:00:00 2001 From: Krzysztof Klimonda Date: Sun, 24 Feb 2013 18:10:44 +0100 Subject: [PATCH] Move ValidationError messages to a dictionary that can be accessed from PinForm.clean --- pinry/pins/forms.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/pinry/pins/forms.py b/pinry/pins/forms.py index be55071..17ca38a 100644 --- a/pinry/pins/forms.py +++ b/pinry/pins/forms.py @@ -7,6 +7,13 @@ class PinForm(forms.ModelForm): url = forms.CharField(required=False) image = forms.ImageField(label='or Upload', required=False) + _errors = { + 'not_image': 'Requested URL is not an image file. Only images are currently supported.', + 'pinned': 'URL has already been pinned!', + 'protocol': 'Currently only support HTTP and HTTPS protocols, please be sure you include this in the URL.', + 'nothing': 'Need either a URL or Upload', + } + class Meta: model = Pin fields = ['url', 'image', 'description', 'tags'] @@ -20,26 +27,18 @@ class PinForm(forms.ModelForm): if url: image_file_types = ['png', 'gif', 'jpeg', 'jpg'] if not url.split('.')[-1].lower() in image_file_types: - raise forms.ValidationError("Requested URL is not an image file. " - "Only images are currently supported.") - try: - Pin.objects.get(url=url) - raise forms.ValidationError("URL has already been pinned!") - except Pin.DoesNotExist: - pass + raise forms.ValidationError(self._errors['not_image']) protocol = url.split(':')[0] if protocol not in ['http', 'https']: - raise forms.ValidationError("Currently only support HTTP and " - "HTTPS protocols, please be sure " - "you include this in the URL.") + raise forms.ValidationError(self._errors['protocol']) try: Pin.objects.get(url=url) - raise forms.ValidationError("URL has already been pinned!") + raise forms.ValidationError(self._errors['pinned']) except Pin.DoesNotExist: pass elif image: pass else: - raise forms.ValidationError("Need either a URL or Upload.") + raise forms.ValidationError(self._errors['nothing']) return cleaned_data