在执行以下操作后,当我为自定义模型管理员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._registryreload(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/

10-13 06:43