Loading django/views/generic/edit.py +3 −1 Original line number Diff line number Diff line from django.forms import models as model_forms from django.core.exceptions import ImproperlyConfigured from django.http import HttpResponseRedirect from django.utils.encoding import force_text from django.views.generic.base import TemplateResponseMixin, ContextMixin, View from django.views.generic.detail import (SingleObjectMixin, SingleObjectTemplateResponseMixin, BaseDetailView) Loading Loading @@ -50,7 +51,8 @@ class FormMixin(ContextMixin): Returns the supplied success URL. """ if self.success_url: url = self.success_url # Forcing possible reverse_lazy evaluation url = force_text(self.success_url) else: raise ImproperlyConfigured( "No URL to redirect to. Provide a success_url.") Loading tests/regressiontests/generic_views/edit.py +9 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,15 @@ class FormMixinTests(TestCase): initial_2 = FormMixin().get_initial() self.assertNotEqual(initial_1, initial_2) class BasicFormTests(TestCase): urls = 'regressiontests.generic_views.urls' def test_post_data(self): res = self.client.post('/contact/', {'name': "Me", 'message': "Hello"}) self.assertRedirects(res, 'http://testserver/list/authors/') class ModelFormMixinTests(TestCase): def test_get_form(self): form_class = views.AuthorGetQuerySetFormView().get_form_class() Loading tests/regressiontests/generic_views/forms.py +5 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,8 @@ class AuthorForm(forms.ModelForm): class Meta: model = Author class ContactForm(forms.Form): name = forms.CharField() message = forms.CharField(widget=forms.Textarea) tests/regressiontests/generic_views/tests.py +2 −2 Original line number Diff line number Diff line Loading @@ -6,6 +6,6 @@ from .dates import (ArchiveIndexViewTests, YearArchiveViewTests, MonthArchiveViewTests, WeekArchiveViewTests, DayArchiveViewTests, DateDetailViewTests) from .detail import DetailViewTest from .edit import (FormMixinTests, ModelFormMixinTests, CreateViewTests, UpdateViewTests, DeleteViewTests) from .edit import (FormMixinTests, BasicFormTests, ModelFormMixinTests, CreateViewTests, UpdateViewTests, DeleteViewTests) from .list import ListViewTests tests/regressiontests/generic_views/urls.py +4 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,10 @@ urlpatterns = patterns('', (r'^detail/nonmodel/1/$', views.NonModelDetail.as_view()), # FormView (r'^contact/$', views.ContactView.as_view()), # Create/UpdateView (r'^edit/artists/create/$', views.ArtistCreate.as_view()), Loading Loading
django/views/generic/edit.py +3 −1 Original line number Diff line number Diff line from django.forms import models as model_forms from django.core.exceptions import ImproperlyConfigured from django.http import HttpResponseRedirect from django.utils.encoding import force_text from django.views.generic.base import TemplateResponseMixin, ContextMixin, View from django.views.generic.detail import (SingleObjectMixin, SingleObjectTemplateResponseMixin, BaseDetailView) Loading Loading @@ -50,7 +51,8 @@ class FormMixin(ContextMixin): Returns the supplied success URL. """ if self.success_url: url = self.success_url # Forcing possible reverse_lazy evaluation url = force_text(self.success_url) else: raise ImproperlyConfigured( "No URL to redirect to. Provide a success_url.") Loading
tests/regressiontests/generic_views/edit.py +9 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,15 @@ class FormMixinTests(TestCase): initial_2 = FormMixin().get_initial() self.assertNotEqual(initial_1, initial_2) class BasicFormTests(TestCase): urls = 'regressiontests.generic_views.urls' def test_post_data(self): res = self.client.post('/contact/', {'name': "Me", 'message': "Hello"}) self.assertRedirects(res, 'http://testserver/list/authors/') class ModelFormMixinTests(TestCase): def test_get_form(self): form_class = views.AuthorGetQuerySetFormView().get_form_class() Loading
tests/regressiontests/generic_views/forms.py +5 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,8 @@ class AuthorForm(forms.ModelForm): class Meta: model = Author class ContactForm(forms.Form): name = forms.CharField() message = forms.CharField(widget=forms.Textarea)
tests/regressiontests/generic_views/tests.py +2 −2 Original line number Diff line number Diff line Loading @@ -6,6 +6,6 @@ from .dates import (ArchiveIndexViewTests, YearArchiveViewTests, MonthArchiveViewTests, WeekArchiveViewTests, DayArchiveViewTests, DateDetailViewTests) from .detail import DetailViewTest from .edit import (FormMixinTests, ModelFormMixinTests, CreateViewTests, UpdateViewTests, DeleteViewTests) from .edit import (FormMixinTests, BasicFormTests, ModelFormMixinTests, CreateViewTests, UpdateViewTests, DeleteViewTests) from .list import ListViewTests
tests/regressiontests/generic_views/urls.py +4 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,10 @@ urlpatterns = patterns('', (r'^detail/nonmodel/1/$', views.NonModelDetail.as_view()), # FormView (r'^contact/$', views.ContactView.as_view()), # Create/UpdateView (r'^edit/artists/create/$', views.ArtistCreate.as_view()), Loading