Override data validation on one django form element

I have a select list dropdown box on my form that is populated with data from a Model (Directors). The value of this dropdown doesn't need to be saved; it is really only used to dynamically trigger another element of the form (a dropdown titled Films). So when the user chooses a Director, it dynamically populates the second list with the Films attached to that Director.

The first element of the first list is "All Directors." Instead of filtering the Film List, it lets all Films be shown on the second list because All Directors is chosen.

If the user chooses a specific Director and then a Film, the form submits correctly. The problem is that if the user chooses All Directors, and then selects a Film, when the form is submitted, it tells me that my choice for Directors is not valid because it is not one of the available choices. In this instance, an available choice (I assume) is one of the existing Director.objects that is in the database. But because I don't care about the Director, I don't need this entry to be valid. I just need Film to be valid.

I'm using a ModelForm. How can I disable or override the data validation on the Director form field so that it ignores the error that that field generates?

Answers


The easiest approach would be to define your own method for validating the form, like this:

class MyForm(forms.ModelForm):
    class Meta:
        model = WhateverModel

    def clean(self):
        super(MyForm, self).clean() #if necessary
        if self.cleaned_data.get('film') and 'director' in self._errors:
            del self._errors['director']
        return self.cleaned_data                            

See http://docs.djangoproject.com/en/dev/ref/forms/validation/#cleaning-and-validating-fields-that-depend-on-each-other for a more extensive explanation and http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overriding-the-clean-method for how it applies to ModelForms.


Need Your Help

Creating a resizable calendar (html/css/jquery)

javascript jquery html css fullcalendar

I'll try to make this as clear as I can! So here goes!

Compiling GWT 2.7.0 against Errai 3.1.1.Final

java gwt errai

I'm trying to figure out if GWT 2.7.0 would compile against Errai 3.1.1.Final

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.