【发布时间】:2018-01-19 21:57:28
【问题描述】:
我们的一些网址包括#。这些用于反向查找,都使用reverse 和{% url 模板标签(内部使用reverse)。 Django 1.8 过去不理会它,1.11 现在将其编码为%23。
是否可以在某处放置一个猴子补丁包装器并在任何地方使用它而不会失败?这是我的包装:
def patch_reverse(func):
def inner(*args, **kwargs):
print "inner reverse"
url = func(*args, **kwargs)
return url.replace("%23", "#")
return inner
from django.urls import base
base.reverse = patch_reverse(base.reverse)
print 语句是为了让我可以查看它是否真的在运行。
我已尝试将其放入设置中,即第一个安装的应用程序的__init__,以及第一个安装的应用程序的urls。没有任何效果。
【问题讨论】:
标签: python django monkeypatching