在执行以下操作后,当我为自定义模型管理员url调用反向链接时,它给了我反向链接,并且在重新加载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('/')
我对此进行了调试,发现当我调用
admin.site._registry
时reload(sys.modules[urlconf])
为空,因为它创建了新的AdminSite对象。我尝试将
admin.site
保留在reload(sys.modules[urlconf])
之前的变量中,然后在重新加载后将其重新分配给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/