[Django]-Django Form Field validation

3๐Ÿ‘

โœ…

You can create a validation method for each form field. def clean_FIELDNAME(). I supose the url field is shortcodeurl:

class AddUrlForm(forms.ModelForm):

    def clean_shortcodeurl(self):
        cleaned_data = self.clean()
        url = cleaned_data.get('shortcodeurl')
        if not is_valid_url(url):  # You create this function
            self.add_error('shortcodeurl', "The url is not valid")
        return url

    class Meta:
        model = forwards
        # fields = '__all__'
        exclude = ["user", "counterA", "counterB", "shortcodeurl", "uniqueid"]

3๐Ÿ‘

For anyone coming here in 2021.

Nowadays Django provides the tools to achieve this kind of validation.

Based on Django 3.2 documentation


from django import forms
from django.core.exceptions import ValidationError

class AddUrlForm(forms.ModelForm):

    class Meta:
        model = forwards
        # fields = '__all__'
        exclude = ["user", "counterA", "counterB", "shortcodeurl", "uniqueid"]

    def clean_shortcodeurl(self):
        data = self.cleaned_data['shortcodeurl']
        if "my_custom_example_url" not in data:
            raise ValidationError("my_custom_example_url has to be in the provided data.")
        return data
๐Ÿ‘คGr3at

Leave a comment