在Django 1.8的简单标签中,我需要解析上下文中找到的HTTP_REFERER路径。我有一段代码可以工作,但我想知道是否可以使用Django工具实现更优雅的解决方案。
这是我的代码:
所以我手动构建了字符串'http://sub.domain.tld:port',然后从在
我试图从
这是我的代码:
from django.core.urlresolvers import resolve, Resolver404
# [...]
@register.simple_tag(takes_context=True)
def simple_tag_example(context):
# The referer is a full path: http://host:port/path/to/referer/
# We only want the path: /path/to/referer/
referer = context.request.META.get('HTTP_REFERER')
if referer is None:
return ''
# Build the string http://host:port/
prefix = '%s://%s' % (context.request.scheme, context.request.get_host())
path = referer.replace(prefix, '')
resolvermatch = resolve(path)
# Do something very interesting with this resolvermatch...
所以我手动构建了字符串'http://sub.domain.tld:port',然后从在
context.request.META
中找到的HTTP_REFERER的完整路径中删除它。这种方法可以实现,但对我来说有点繁琐。我试图从
referer
中构建一个HttpRequest
,但没有成功。是否有一个类或类型可以用来轻松地从URL中提取路径?