Loading django/views/generic/edit.py +9 −3 Original line number Diff line number Diff line Loading @@ -112,7 +112,14 @@ class FormMixin(six.with_metaclass(FormMixinBase, ContextMixin)): If the form is invalid, re-render the context data with the data-filled form and errors. """ return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data()) def get_context_data(self, **kwargs): """ Insert the form into the context dict. """ kwargs.setdefault('form', self.get_form()) return super(FormMixin, self).get_context_data(**kwargs) class ModelFormMixin(FormMixin, SingleObjectMixin): Loading Loading @@ -202,8 +209,7 @@ class ProcessFormView(View): """ Handles GET requests and instantiates a blank version of the form. """ form = self.get_form() return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data()) def post(self, request, *args, **kwargs): """ Loading docs/ref/class-based-views/flattened-index.txt +3 −3 Original line number Diff line number Diff line Loading @@ -168,7 +168,7 @@ FormView * :meth:`~django.views.generic.edit.FormMixin.form_invalid` * :meth:`~django.views.generic.edit.FormMixin.form_valid` * :meth:`~django.views.generic.edit.ProcessFormView.get` * :meth:`~django.views.generic.base.ContextMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.FormMixin.get_form_kwargs` * :meth:`~django.views.generic.base.View.http_method_not_allowed` Loading Loading @@ -207,7 +207,7 @@ CreateView * :meth:`~django.views.generic.edit.FormMixin.form_invalid` * :meth:`~django.views.generic.edit.ModelFormMixin.form_valid` * :meth:`~django.views.generic.edit.ProcessFormView.get` * :meth:`~django.views.generic.base.ContextMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.ModelFormMixin.get_form_kwargs` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` Loading Loading @@ -249,7 +249,7 @@ UpdateView * :meth:`~django.views.generic.edit.FormMixin.form_invalid` * :meth:`~django.views.generic.edit.ModelFormMixin.form_valid` * :meth:`~django.views.generic.edit.ProcessFormView.get` * :meth:`~django.views.generic.base.ContextMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.ModelFormMixin.get_form_kwargs` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` Loading docs/ref/class-based-views/mixins-editing.txt +14 −2 Original line number Diff line number Diff line Loading @@ -91,6 +91,13 @@ FormMixin Renders a response, providing the invalid form as context. .. method:: get_context_data(**kwargs) .. versionadded:: 1.9 Calls :meth:`get_form` and adds the result to the context data with the name 'form'. ModelFormMixin -------------- Loading Loading @@ -214,8 +221,13 @@ ProcessFormView .. method:: get(request, *args, **kwargs) Constructs a form, then renders a response using a context that contains that form. Renders a response using a context created with :meth:`~django.views.generic.edit.FormMixin.get_context_data`. .. versionchanged:: 1.9 Construction of the form was moved from this method to :meth:`~django.views.generic.edit.FormMixin.get_context_data`. .. method:: post(request, *args, **kwargs) Loading docs/releases/1.9.txt +7 −0 Original line number Diff line number Diff line Loading @@ -407,6 +407,13 @@ Miscellaneous * ``CommaSeparatedIntegerField`` validation has been refined to forbid values like ``','``, ``',1'``, and ``'1,,2'``. * Form initialization was moved from the :meth:`ProcessFormView.get() <django.views.generic.edit.ProcessFormView.get>` method to the new :meth:`FormMixin.get_context_data() <django.views.generic.edit.FormMixin.get_context_data>` method. This may be backwards incompatible if you have overridden the ``get_context_data()`` method without calling ``super()``. .. _deprecated-features-1.9: Features deprecated in 1.9 Loading tests/generic_views/test_edit.py +7 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,13 @@ class FormMixinTests(TestCase): MissingDefaultValue().get_form(), forms.Form, ) def test_get_context_data(self): class FormContext(FormMixin): request = RequestFactory().get('/') form_class = forms.Form self.assertIsInstance(FormContext().get_context_data()['form'], forms.Form) @override_settings(ROOT_URLCONF='generic_views.urls') class BasicFormTests(TestCase): Loading Loading
django/views/generic/edit.py +9 −3 Original line number Diff line number Diff line Loading @@ -112,7 +112,14 @@ class FormMixin(six.with_metaclass(FormMixinBase, ContextMixin)): If the form is invalid, re-render the context data with the data-filled form and errors. """ return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data()) def get_context_data(self, **kwargs): """ Insert the form into the context dict. """ kwargs.setdefault('form', self.get_form()) return super(FormMixin, self).get_context_data(**kwargs) class ModelFormMixin(FormMixin, SingleObjectMixin): Loading Loading @@ -202,8 +209,7 @@ class ProcessFormView(View): """ Handles GET requests and instantiates a blank version of the form. """ form = self.get_form() return self.render_to_response(self.get_context_data(form=form)) return self.render_to_response(self.get_context_data()) def post(self, request, *args, **kwargs): """ Loading
docs/ref/class-based-views/flattened-index.txt +3 −3 Original line number Diff line number Diff line Loading @@ -168,7 +168,7 @@ FormView * :meth:`~django.views.generic.edit.FormMixin.form_invalid` * :meth:`~django.views.generic.edit.FormMixin.form_valid` * :meth:`~django.views.generic.edit.ProcessFormView.get` * :meth:`~django.views.generic.base.ContextMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.FormMixin.get_form_kwargs` * :meth:`~django.views.generic.base.View.http_method_not_allowed` Loading Loading @@ -207,7 +207,7 @@ CreateView * :meth:`~django.views.generic.edit.FormMixin.form_invalid` * :meth:`~django.views.generic.edit.ModelFormMixin.form_valid` * :meth:`~django.views.generic.edit.ProcessFormView.get` * :meth:`~django.views.generic.base.ContextMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.ModelFormMixin.get_form_kwargs` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` Loading Loading @@ -249,7 +249,7 @@ UpdateView * :meth:`~django.views.generic.edit.FormMixin.form_invalid` * :meth:`~django.views.generic.edit.ModelFormMixin.form_valid` * :meth:`~django.views.generic.edit.ProcessFormView.get` * :meth:`~django.views.generic.base.ContextMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_context_data` * :meth:`~django.views.generic.edit.FormMixin.get_form` * :meth:`~django.views.generic.edit.ModelFormMixin.get_form_kwargs` * :meth:`~django.views.generic.detail.SingleObjectMixin.get_object` Loading
docs/ref/class-based-views/mixins-editing.txt +14 −2 Original line number Diff line number Diff line Loading @@ -91,6 +91,13 @@ FormMixin Renders a response, providing the invalid form as context. .. method:: get_context_data(**kwargs) .. versionadded:: 1.9 Calls :meth:`get_form` and adds the result to the context data with the name 'form'. ModelFormMixin -------------- Loading Loading @@ -214,8 +221,13 @@ ProcessFormView .. method:: get(request, *args, **kwargs) Constructs a form, then renders a response using a context that contains that form. Renders a response using a context created with :meth:`~django.views.generic.edit.FormMixin.get_context_data`. .. versionchanged:: 1.9 Construction of the form was moved from this method to :meth:`~django.views.generic.edit.FormMixin.get_context_data`. .. method:: post(request, *args, **kwargs) Loading
docs/releases/1.9.txt +7 −0 Original line number Diff line number Diff line Loading @@ -407,6 +407,13 @@ Miscellaneous * ``CommaSeparatedIntegerField`` validation has been refined to forbid values like ``','``, ``',1'``, and ``'1,,2'``. * Form initialization was moved from the :meth:`ProcessFormView.get() <django.views.generic.edit.ProcessFormView.get>` method to the new :meth:`FormMixin.get_context_data() <django.views.generic.edit.FormMixin.get_context_data>` method. This may be backwards incompatible if you have overridden the ``get_context_data()`` method without calling ``super()``. .. _deprecated-features-1.9: Features deprecated in 1.9 Loading
tests/generic_views/test_edit.py +7 −0 Original line number Diff line number Diff line Loading @@ -81,6 +81,13 @@ class FormMixinTests(TestCase): MissingDefaultValue().get_form(), forms.Form, ) def test_get_context_data(self): class FormContext(FormMixin): request = RequestFactory().get('/') form_class = forms.Form self.assertIsInstance(FormContext().get_context_data()['form'], forms.Form) @override_settings(ROOT_URLCONF='generic_views.urls') class BasicFormTests(TestCase): Loading