mirror of
https://github.com/django/django.git
synced 2025-09-26 12:09:19 +00:00
Fixed #23934 -- Fixed regression in admin views obj parameter.
This commit is contained in:
parent
1da1fe8e16
commit
0623f4dea4
5 changed files with 92 additions and 7 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue