【发布时间】:2026-01-02 01:05:01
【问题描述】:
这可能是一个孤立的问题,但我想我会问一下,以防有人想用一种优雅的方法来解决它。
设置如下:
--------
views.py
--------
from django.http import HttpResponse
import shortcuts
def mood_dispatcher(request):
mood = magic_function_to_guess_my_mood(request)
return HttpResponse('Please go to %s' % shortcuts.MOODS.get(mood, somedefault))
------------
shortcuts.py
------------
MOODS = # expensive load that causes a reverse to happen
问题是在 django 完成构建 url 之前尝试反向时,shortcuts.py 会导致抛出异常。但是,views.py 还不需要导入shortcuts.py(仅在实际调用mood_dispatcher 时使用)。明显的初始解决方案是: 1)内联导入快捷方式(只是在风格上不是很好) 2)让shortcuts.py懒惰地构建MOODS(只是更多的工作)
理想情况下,我希望能够在views.py 的顶部说“导入快捷方式,加载网址时除外”
【问题讨论】:
标签: django django-urls python-import