summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-03-09 09:32:39 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2007-03-09 09:32:39 +0000
commitab64b383177f8e554c876d7c8574df6169ecc515 (patch)
treedbe98d757e4289ab4c9de6710b06e7f6f52b8e61
parentcc8d656569cd907a92b8b292e3a6627d5f9a5290 (diff)
Fixed #2869 -- Do not append ADMIN_MEDIA_PREFIX to absolute-path URLs used for
included javascript. Based on patches from SmileyChris and oyvind@saltvik.no. git-svn-id: http://code.djangoproject.com/svn/django/trunk@4692 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/admin/templatetags/admin_modify.py10
-rw-r--r--docs/model-api.txt3
2 files changed, 9 insertions, 4 deletions
diff --git a/django/contrib/admin/templatetags/admin_modify.py b/django/contrib/admin/templatetags/admin_modify.py
index fcb5876b0c..e708b876bd 100644
--- a/django/contrib/admin/templatetags/admin_modify.py
+++ b/django/contrib/admin/templatetags/admin_modify.py
@@ -11,6 +11,7 @@ import re
register = template.Library()
word_re = re.compile('[A-Z][a-z]+')
+absolute_url_re = re.compile(r'^(?:http(?:s)?:/)?/', re.IGNORECASE)
def class_name_to_underscored(name):
return '_'.join([s.lower() for s in word_re.findall(name)[:-1]])
@@ -18,18 +19,19 @@ def class_name_to_underscored(name):
def include_admin_script(script_path):
"""
Returns an HTML script element for including a script from the admin
- media url.
+ media url (or other location if an absolute url is given).
Example usage::
- {% include_admin_script js/calendar.js %}
+ {% include_admin_script "js/calendar.js" %}
could return::
<script type="text/javascript" src="/media/admin/js/calendar.js">
"""
-
- return '<script type="text/javascript" src="%s%s"></script>' % (settings.ADMIN_MEDIA_PREFIX, script_path)
+ if not absolute_url_re.match(script_path):
+ script_path = '%s%s' % (settings.ADMIN_MEDIA_PREFIX, script_path)
+ return '<script type="text/javascript" src="%s"></script>' % script_path
include_admin_script = register.simple_tag(include_admin_script)
def submit_row(context):
diff --git a/docs/model-api.txt b/docs/model-api.txt
index 1e7f69903d..e66e96de68 100644
--- a/docs/model-api.txt
+++ b/docs/model-api.txt
@@ -1216,6 +1216,9 @@ screen via ``<script src="">`` tags. This can be used to tweak a given type of
admin page in JavaScript or to provide "quick links" to fill in default values
for certain fields.
+If relative URLs are used, Django admin will automatically prepend these links
+with ``settings.ADMIN_MEDIA_PREFIX``.
+
``list_display``
----------------