Skip to content

Commit

Permalink
Fixed #14797 -- Corrected the handling of get_form_class() when a cus…
Browse files Browse the repository at this point in the history
…tom queryset has been defined, but a model hasn't. Thanks to Gabriel Grant for the report and patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14809 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
freakboy3742 committed Dec 4, 2010
1 parent 324658e commit adfd7f8
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 5 deletions.
5 changes: 1 addition & 4 deletions django/views/generic/edit.py
Expand Up @@ -72,10 +72,7 @@ def get_form_class(self):
if self.form_class: if self.form_class:
return self.form_class return self.form_class
else: else:
if self.model is None: model = self.get_queryset().model
model = self.queryset.model
else:
model = self.model
return model_forms.modelform_factory(model) return model_forms.modelform_factory(model)


def get_form(self, form_class): def get_form(self, form_class):
Expand Down
4 changes: 4 additions & 0 deletions tests/regressiontests/generic_views/edit.py
Expand Up @@ -7,6 +7,10 @@
from regressiontests.generic_views.models import Artist, Author from regressiontests.generic_views.models import Artist, Author
from regressiontests.generic_views import views from regressiontests.generic_views import views


class ModelFormMixinTests(TestCase):
def test_get_form(self):
form_class = views.AuthorGetQuerySetFormView().get_form_class()
self.assertEqual(form_class.Meta.model, Author)


class CreateViewTests(TestCase): class CreateViewTests(TestCase):
urls = 'regressiontests.generic_views.urls' urls = 'regressiontests.generic_views.urls'
Expand Down
2 changes: 1 addition & 1 deletion tests/regressiontests/generic_views/tests.py
@@ -1,5 +1,5 @@
from regressiontests.generic_views.base import ViewTest, TemplateViewTest, RedirectViewTest from regressiontests.generic_views.base import ViewTest, TemplateViewTest, RedirectViewTest
from regressiontests.generic_views.dates import ArchiveIndexViewTests, YearArchiveViewTests, MonthArchiveViewTests, WeekArchiveViewTests, DayArchiveViewTests, DateDetailViewTests from regressiontests.generic_views.dates import ArchiveIndexViewTests, YearArchiveViewTests, MonthArchiveViewTests, WeekArchiveViewTests, DayArchiveViewTests, DateDetailViewTests
from regressiontests.generic_views.detail import DetailViewTest from regressiontests.generic_views.detail import DetailViewTest
from regressiontests.generic_views.edit import CreateViewTests, UpdateViewTests, DeleteViewTests from regressiontests.generic_views.edit import ModelFormMixinTests, CreateViewTests, UpdateViewTests, DeleteViewTests
from regressiontests.generic_views.list import ListViewTests from regressiontests.generic_views.list import ListViewTests
4 changes: 4 additions & 0 deletions tests/regressiontests/generic_views/views.py
Expand Up @@ -143,3 +143,7 @@ class BookTodayArchive(BookConfig, generic.TodayArchiveView):


class BookDetail(BookConfig, generic.DateDetailView): class BookDetail(BookConfig, generic.DateDetailView):
pass pass

class AuthorGetQuerySetFormView(generic.edit.ModelFormMixin):
def get_queryset(self):
return Author.objects.all()

0 comments on commit adfd7f8

Please sign in to comment.