Fixed #11532 -- Corrected the link used for edit_inline foreign keys in admin when the admin is deployed using the old style admin.root approach. Thanks to JP for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11314 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
a135608d91
commit
53d16b1175
|
@ -224,7 +224,8 @@ class RelatedFieldWidgetWrapper(forms.Widget):
|
||||||
try:
|
try:
|
||||||
related_url = reverse('admin:%s_%s_add' % info, current_app=self.admin_site.name)
|
related_url = reverse('admin:%s_%s_add' % info, current_app=self.admin_site.name)
|
||||||
except NoReverseMatch:
|
except NoReverseMatch:
|
||||||
related_url = '../../../%s/%s/add/' % info
|
info = (self.admin_site.root_path, rel_to._meta.app_label, rel_to._meta.object_name.lower())
|
||||||
|
related_url = '%s%s/%s/add/' % info
|
||||||
self.widget.choices = self.choices
|
self.widget.choices = self.choices
|
||||||
output = [self.widget.render(name, value, *args, **kwargs)]
|
output = [self.widget.render(name, value, *args, **kwargs)]
|
||||||
if rel_to in self.admin_site._registry: # If the related object has an admin interface:
|
if rel_to in self.admin_site._registry: # If the related object has an admin interface:
|
||||||
|
|
|
@ -115,6 +115,7 @@ class AdminFormfieldForDBFieldWithRequestTests(DjangoTestCase):
|
||||||
|
|
||||||
class AdminForeignKeyWidgetChangeList(DjangoTestCase):
|
class AdminForeignKeyWidgetChangeList(DjangoTestCase):
|
||||||
fixtures = ["admin-widgets-users.xml"]
|
fixtures = ["admin-widgets-users.xml"]
|
||||||
|
admin_root = '/widget_admin'
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.client.login(username="super", password="secret")
|
self.client.login(username="super", password="secret")
|
||||||
|
@ -123,5 +124,9 @@ class AdminForeignKeyWidgetChangeList(DjangoTestCase):
|
||||||
self.client.logout()
|
self.client.logout()
|
||||||
|
|
||||||
def test_changelist_foreignkey(self):
|
def test_changelist_foreignkey(self):
|
||||||
response = self.client.get('/widget_admin/admin_widgets/car/')
|
response = self.client.get('%s/admin_widgets/car/' % self.admin_root)
|
||||||
self.failUnless('/widget_admin/auth/user/add/' in response.content)
|
self.failUnless('%s/auth/user/add/' % self.admin_root in response.content)
|
||||||
|
|
||||||
|
class OldAdminForeignKeyWidgetChangeList(AdminForeignKeyWidgetChangeList):
|
||||||
|
urls = 'regressiontests.admin_widgets.urls2'
|
||||||
|
admin_root = '/deep/down/admin'
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
|
||||||
|
from django.conf.urls.defaults import *
|
||||||
|
import widgetadmin
|
||||||
|
|
||||||
|
urlpatterns = patterns('',
|
||||||
|
(r'^deep/down/admin/(.*)', widgetadmin.site.root),
|
||||||
|
)
|
Loading…
Reference in New Issue