[Answered ]-Django form performance

2👍

Create a custom model form, and in the __init__ method change the teachers queryset to use select_related to be more efficient.

class CourseCatalogForm(forms.ModelForm):
    class Meta:
        fields = ['course_name','course_desc', 'teacher']

    def __init__(self, *args, **kwargs):
        super(CourseCatalogForm, self).__init__(*args, **kwargs)
        self.fields['teacher'].queryset = self.fields['teacher'].queryset.select_related('family_member')

Then use your new model form class in your view instead of specifying fields.

class EditCourseCatalog(UpdateView):
    model = CourseCatalog
    template_name = 'school/course_catalog/new_edit_form.html'
    form_class = CourseCatalogForm

Leave a comment