Use admin2_url, redirect create form to index view.

Uses the template tag admin2_url to create namespaced view names
from inside of views.

Create model form now redirects to the model index page, as
django.contrib.admin. does.

Removed get_success_url from ModelListView, as generic.ListView
does not call this method.
This commit is contained in:
Chris Lawlor 2013-05-21 14:01:30 -04:00
parent c6c44bbdd0
commit f66ffe8c86
2 changed files with 8 additions and 15 deletions

View file

@ -9,6 +9,9 @@ from django.views import generic
from braces.views import AccessMixin
from templatetags.admin2_urls import admin2_urlname
ADMIN2_THEME_DIRECTORY = getattr(settings, "ADMIN2_THEME_DIRECTORY", "admin2/bootstrap")
@ -97,10 +100,6 @@ class ModelListView(Admin2Mixin, generic.ListView):
context['model_pluralized'] = self.get_model()._meta.verbose_name_plural
return context
def get_success_url(self):
view_name = 'admin2:{}_{}_detail'.format(self.app_label, self.model_name)
return reverse(view_name, kwargs={'pk': self.object.pk})
class ModelDetailView(AdminModel2Mixin, generic.DetailView):
default_template_name = "model_detail.html"
@ -126,19 +125,14 @@ class ModelAddFormView(AdminModel2Mixin, generic.CreateView):
def get_success_url(self):
if '_continue' in self.request.POST:
view_name = 'admin2:{}_{}_update'.format(self.app_label,
self.model_name)
view_name = admin2_urlname(self, 'update')
return reverse(view_name, kwargs={'pk': self.object.pk})
if '_addanother' in self.request.POST:
view_name = 'admin2:{}_{}_create'.format(self.app_label,
self.model_name)
return reverse(view_name)
return reverse(admin2_urlname(self, 'create'))
# default to detail view
view_name = 'admin2:{}_{}_detail'.format(self.app_label,
self.model_name)
return reverse(view_name, kwargs={'pk': self.object.pk})
# default to index view
return reverse(admin2_urlname(self, 'index'))
class ModelDeleteView(AdminModel2Mixin, generic.DeleteView):

View file

@ -51,8 +51,7 @@ class PostCreateViewTest(BaseIntegrationTest):
follow=True)
self.assertTrue(Post.objects.filter(title="a_post_title").exists())
post = Post.objects.get(title="a_post_title")
self.assertRedirects(response, reverse("admin2:blog_post_detail",
args=(post.pk, )))
self.assertRedirects(response, reverse("admin2:blog_post_index"))
def test_save_and_add_another_redirects_to_create(self):
"""