Skip to content

Commit

Permalink
Fixed #21967: Added check for object in ModelFormMixin.get_form_kwargs.
Browse files Browse the repository at this point in the history
Thanks lagovas.lagovas at gmail.com for the report.
  • Loading branch information
ryankask authored and timgraham committed Feb 9, 2014
1 parent 80cd64e commit 75a96f0
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
3 changes: 2 additions & 1 deletion django/views/generic/edit.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,8 @@ def get_form_kwargs(self):
Returns the keyword arguments for instantiating the form.
"""
kwargs = super(ModelFormMixin, self).get_form_kwargs()
kwargs.update({'instance': self.object})
if hasattr(self, 'object'):
kwargs.update({'instance': self.object})
return kwargs

def get_success_url(self):
Expand Down
8 changes: 7 additions & 1 deletion tests/generic_views/test_edit.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from django.test import TestCase
from django.test.client import RequestFactory
from django.views.generic.base import View
from django.views.generic.edit import FormMixin, CreateView
from django.views.generic.edit import FormMixin, ModelFormMixin, CreateView

from . import views
from .models import Artist, Author
Expand Down Expand Up @@ -55,6 +55,12 @@ def test_get_form(self):
form_class = views.AuthorGetQuerySetFormView().get_form_class()
self.assertEqual(form_class._meta.model, Author)

def test_get_form_checks_for_object(self):
mixin = ModelFormMixin()
mixin.request = RequestFactory().get('/')
self.assertEqual({'initial': {}, 'prefix': None},
mixin.get_form_kwargs())


class CreateViewTests(TestCase):
urls = 'generic_views.urls'
Expand Down

0 comments on commit 75a96f0

Please sign in to comment.