在我为我的自定义模型管理 url 调用 reverse 时执行以下操作后,它给我 Reverse not found 并且在重新加载 urls.py reverse 之前工作正常。
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 对象。
我尝试在 reload(sys.modules[urlconf])
之前将 admin.site
保存在变量中并将其分配回 admin.site
重新加载后但没有成功。
需要帮助。
提前致谢。
最佳答案
我在运行 Django 1.7 时遇到了同样的问题,这似乎为我解决了这个问题:
import sys
from importlib import reload # Python 3
from django.conf import settings
from django.core.urlresolvers import clear_url_caches
from django.utils.importlib import import_module
def reload_urlconf(urlconf=None):
clear_url_caches()
if urlconf is None:
urlconf = settings.ROOT_URLCONF
if urlconf in sys.modules:
reload(sys.modules[urlconf])
import_module(urlconf)
关于python - 重新加载后找不到我的自定义模型管理 url 的反向(sys.modules ['urls.py' ]),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31136860/