【发布时间】:2015-06-30 11:20:08
【问题描述】:
当我为我的自定义模型管理 url 调用 reverse 后,它给了我 Reverse not found 并且在重新加载 urls.py 之前反向工作正常。
def _reset_urls(self, urlconf_modules):
"""Reset `urls.py` for a set of Django apps."""
for urlconf in urlconf_modules:
if urlconf in sys.modules:
reload(sys.modules[urlconf])
clear_url_caches()
resolve('/')
我对此进行了调试,发现当我调用reload(sys.modules[urlconf]) 时admin.site._registry 为空,因为它创建了新的AdminSite 对象。
我尝试将admin.site 保留在reload(sys.modules[urlconf]) 之前的变量中,并在重新加载后将其分配回admin.site,但它不起作用。
需要帮助。
提前致谢。
【问题讨论】:
-
为什么需要这样做?
-
@DanielRoseman 我在单元测试中需要这个。
-
不是什么时候,为什么你需要这个?
-
@DanielRoseman 因为我们在 urls.py 中使用了功能标志,所以我们在测试中对其进行修补,然后重新加载使其生效。
-
@knbk 请看上面的^^评论。
标签: python django django-models django-admin django-1.4