Fixed #7738: support initial values via `GET` for `SelectMutliple` in the admin.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@8699 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
89ccbabbfc
commit
21928f2ba0
|
@ -503,7 +503,17 @@ class ModelAdmin(BaseModelAdmin):
|
|||
self.log_addition(request, new_object)
|
||||
return self.response_add(request, new_object)
|
||||
else:
|
||||
form = ModelForm(initial=dict(request.GET.items()))
|
||||
# Prepare the dict of initial data from the request.
|
||||
# We have to special-case M2Ms as a list of comma-separated PKs.
|
||||
initial = dict(request.GET.items())
|
||||
for k in initial:
|
||||
try:
|
||||
f = opts.get_field(k)
|
||||
except FieldDoesNotExist:
|
||||
pass
|
||||
if isinstance(f, models.ManyToManyField):
|
||||
initial[k] = initial[k].split(",")
|
||||
form = ModelForm(initial=initial)
|
||||
for FormSet in self.get_formsets(request):
|
||||
formset = FormSet(instance=self.model())
|
||||
formsets.append(formset)
|
||||
|
|
|
@ -36,6 +36,14 @@ class AdminViewBasicTest(TestCase):
|
|||
response = self.client.get('/test_admin/admin/admin_views/section/add/')
|
||||
self.failUnlessEqual(response.status_code, 200)
|
||||
|
||||
def testAddWithGETArgs(self):
|
||||
response = self.client.get('/test_admin/admin/admin_views/section/add/', {'name': 'My Section'})
|
||||
self.failUnlessEqual(response.status_code, 200)
|
||||
self.failUnless(
|
||||
'value="My Section"' in response.content,
|
||||
"Couldn't find an input with the right value in the response."
|
||||
)
|
||||
|
||||
def testBasicEditGet(self):
|
||||
"""
|
||||
A smoke test to ensureGET on the change_view works.
|
||||
|
|
Loading…
Reference in New Issue