diff options
| author | Kamil Braun <kb346840@students.mimuw.edu.pl> | 2014-11-27 19:34:14 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-12-02 08:42:17 -0500 |
| commit | 0623f4dea46eefba46efde6c6528f7d813ef4391 (patch) | |
| tree | 1587b65e38fcb3ac27a3a0f8bb50b2661bb119be /tests/admin_views/admin.py | |
| parent | 1da1fe8e16e4f49447f7fb94fb092cfeafff7058 (diff) | |
Fixed #23934 -- Fixed regression in admin views obj parameter.
Diffstat (limited to 'tests/admin_views/admin.py')
| -rw-r--r-- | tests/admin_views/admin.py | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index 2493c309ce..b81de1d4ac 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -18,7 +18,8 @@ from django.contrib.admin import BooleanFieldListFilter from django.utils.safestring import mark_safe from django.utils.six import StringIO -from .models import (Article, Chapter, Child, Parent, Picture, Widget, +from .models import ( + Article, Chapter, Child, Parent, Picture, Widget, DooHickey, Grommet, Whatsit, FancyDoodad, Category, Link, PrePopulatedPost, PrePopulatedSubPost, CustomArticle, Section, ModelWithStringPrimaryKey, Color, Thing, Actor, Inquisition, Sketch, @@ -37,7 +38,9 @@ from .models import (Article, Chapter, Child, Parent, Picture, Widget, State, City, Restaurant, Worker, ParentWithDependentChildren, DependentChild, StumpJoke, FieldOverridePost, FunkyTag, ReferencedByParent, ChildOfReferer, ReferencedByInline, - InlineReference, InlineReferer, Recipe, Ingredient, NotReferenced) + InlineReference, InlineReferer, Recipe, Ingredient, NotReferenced, + ExplicitlyProvidedPK, ImplicitlyGeneratedPK, +) def callable_year(dt_value): @@ -842,6 +845,25 @@ class InlineRefererAdmin(admin.ModelAdmin): inlines = [InlineReferenceInline] +class GetFormsetsArgumentCheckingAdmin(admin.ModelAdmin): + fields = ['name'] + + def add_view(self, request, *args, **kwargs): + request.is_add_view = True + return super(GetFormsetsArgumentCheckingAdmin, self).add_view(request, *args, **kwargs) + + def change_view(self, request, *args, **kwargs): + request.is_add_view = False + return super(GetFormsetsArgumentCheckingAdmin, self).change_view(request, *args, **kwargs) + + def get_formsets_with_inlines(self, request, obj=None): + if request.is_add_view and obj is not None: + raise Exception("'obj' passed to get_formsets_with_inlines wasn't None during add_view") + if not request.is_add_view and obj is None: + raise Exception("'obj' passed to get_formsets_with_inlines was None during change_view") + return super(GetFormsetsArgumentCheckingAdmin, self).get_formsets_with_inlines(request, obj) + + site = admin.AdminSite(name="admin") site.site_url = '/my-site-url/' site.register(Article, ArticleAdmin) @@ -942,6 +964,8 @@ site.register(StumpJoke) site.register(Recipe) site.register(Ingredient) site.register(NotReferenced) +site.register(ExplicitlyProvidedPK, GetFormsetsArgumentCheckingAdmin) +site.register(ImplicitlyGeneratedPK, GetFormsetsArgumentCheckingAdmin) # Register core models we need in our tests from django.contrib.auth.models import User, Group |
