Skip to content

Commit 64cf4b9

Browse files
Fixed bug in [3553] -- Changed admin JavaScript quoting for related-object popup window not to use repr(), because that produces values such as 123L for longints. Refs django#2500
git-svn-id: http://code.djangoproject.com/svn/django/trunk@3613 bcc190cf-cafb-0310-a4f2-bffc1f526a37
1 parent df20bf5 commit 64cf4b9

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

django/contrib/admin/views/main.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,9 @@ def add_stage(request, app_label, model_name, show_delete=False, form_url='', po
263263
post_url_continue += "?_popup=1"
264264
return HttpResponseRedirect(post_url_continue % pk_value)
265265
if request.POST.has_key("_popup"):
266-
return HttpResponse('<script type="text/javascript">opener.dismissAddAnotherPopup(window, %r, "%s");</script>' % \
266+
if type(pk_value) is str: # Quote if string, so JavaScript doesn't think it's a variable.
267+
pk_value = '"%s"' % pk_value.replace('"', '\\"')
268+
return HttpResponse('<script type="text/javascript">opener.dismissAddAnotherPopup(window, %s, "%s");</script>' % \
267269
(pk_value, str(new_object).replace('"', '\\"')))
268270
elif request.POST.has_key("_addanother"):
269271
request.user.message_set.create(message=msg + ' ' + (_("You may add another %s below.") % opts.verbose_name))
@@ -720,7 +722,7 @@ def construct_search(field_name):
720722
return "%s__search" % field_name[1:]
721723
else:
722724
return "%s__icontains" % field_name
723-
725+
724726
if self.lookup_opts.admin.search_fields and self.query:
725727
for bit in self.query.split():
726728
or_queries = [models.Q(**{construct_search(field_name): bit}) for field_name in self.lookup_opts.admin.search_fields]

0 commit comments

Comments
 (0)