Django URL 标签:达到最大递归深度

3 投票
1 回答
3199 浏览
提问于 2025-04-16 19:59

我遇到了一个问题:

我有两个网址文件:

一个是根网址文件:

    urlpatterns = patterns('',
        ...
        (r'^demonstrator/', include('powernest.demonstrator.urls')),
        ...
    )

另一个是应用网址文件:

    urlpatterns += patterns('demonstrator.views',
        ...
        url(r'^demonstrator/choices/$', 'demo_choices', d_demo_choice, name="demo_choices"),
        ...
    )

还有一个相关的视图:

    def demo_choices(request, template_name, action):
        ...
        return render_to_response(template_name, datas, context_instance=RequestContext(request))

当我在模板中尝试调用名为 "demo_choices" 的网址时,使用 {% url demo_choices %},我遇到了一个模板语法错误:

在渲染时捕获到一个异常:调用 Python 对象时超出了最大递归深度

我花了很多时间也没搞明白!请帮帮我!

谢谢你,抱歉我的英语不好!

维克托

1 个回答

0

你在你的应用的urls.py文件中包含了app.urls,并且使用了+=这个符号。这导致了最大递归深度超出的问题。

你可以保持你的urls.py不变,把你的app/urls.py改成:

urlpatterns = patterns('demonstrator.views',
    ...
    url(r'^choices/$', 'demo_choices', d_demo_choice,  name="demo_choices"),
    ...
)

注意,其实你不需要在网址的正则表达式中多加那个“demonstrator”部分。希望这能帮到你。

撰写回答