mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Moved relative URL handling added in refs #21177 to a better place.
Thanks apollo13: "reverse() shouldn't know about absolute/relative paths."
This commit is contained in:
@@ -10,6 +10,7 @@ from django.db.models.base import ModelBase
|
||||
from django.db.models.manager import Manager
|
||||
from django.db.models.query import QuerySet
|
||||
from django.core import urlresolvers
|
||||
from django.utils import six
|
||||
|
||||
|
||||
def render_to_response(*args, **kwargs):
|
||||
@@ -147,6 +148,11 @@ def resolve_url(to, *args, **kwargs):
|
||||
if hasattr(to, 'get_absolute_url'):
|
||||
return to.get_absolute_url()
|
||||
|
||||
if isinstance(to, six.string_types):
|
||||
# Handle relative URLs
|
||||
if any(to.startswith(path) for path in ('./', '../')):
|
||||
return to
|
||||
|
||||
# Next try a reverse URL resolution.
|
||||
try:
|
||||
return urlresolvers.reverse(to, args=args, kwargs=kwargs)
|
||||
|
||||
Reference in New Issue
Block a user