How to specify the name of the form variable used in the template of a FormView? (object_context_name for forms)

django, django-class-based-views

Solution

You could override `get_context_data`:

class MyFormView(FormView):
    template_name = 'my_forms.html'                                      
    form_class = MyContactForm  
    success_url = '/thanks/' 

    # from ContextMixin via FormMixin    
    def get_context_data(self, **kwargs):
        data = super(MyFormView, self).get_context_data(**kwargs)

        data['my_contact_form'] = data.get('form')

        return data

Problem

``` from forms import MyContactForm from django.views.generic.edit import FormView class MyFormView(FormView): template_name = 'my_forms.html' form_class = MyContactForm success_url = '/thanks/' ``` In my template, the form is called like this: `{{ form }}` But how can I call it like this: `{{ my_contact_form }}`? This would be the forms equivalent of `object_context_name`(for models).

Original source

Related problems