django reverse()失败

django reverse()失败,django,django-urls,Django,Django Urls,简单地说,在我的项目中任何地方提到reverse都是失败的,{%url%}也是失败的。 我已经取得了一些进展,如果你滚动到底部 相关文件 root/url.py root/core/views.py 注释 当我的项目中有一个名为site.py的文件试图调用reverse时,我第一次注意到反向失败。我用它来存储站点设置。我使用这个文件是因为 我不想在数据库中使用那些很少改变的数据。 如果我破坏了我的项目数据库,我不希望我的网站设置也被破坏 此后,我找到了一种使用模型来实现这两个目标的方法 但所有这

简单地说,在我的项目中任何地方提到reverse都是失败的,{%url%}也是失败的。 我已经取得了一些进展,如果你滚动到底部

相关文件

root/url.py

root/core/views.py

注释

当我的项目中有一个名为site.py的文件试图调用reverse时,我第一次注意到反向失败。我用它来存储站点设置。我使用这个文件是因为

我不想在数据库中使用那些很少改变的数据。 如果我破坏了我的项目数据库,我不希望我的网站设置也被破坏 此后,我找到了一种使用模型来实现这两个目标的方法

但所有这些都只是额外的背景信息,以防你在这里看到有人对site.py发表评论

更新日期:2011年2月25日

好了,开始吧

首先请注意,urls.py有r“^dbrowse/”,包括“dbrowse.urls”。这导致了reverse的失败。我稍后会解释

至于模板标记,我发现{%url%}不接受变量。我认为这完全是理所当然的。事实上,当我测试模板标记时,我只需要硬编码一些东西,比如{%url'home'%},它会工作,有时我会测试{%url home%},home是一个变量。我甚至不认为这是完全不同的测试用例

但我现在知道{%loadurl fromfuture%}允许您使用变量作为{%url%}的参数

无论如何,现在回到r“^dbrowse/”,在url.py中包含“dbrowse.url”

我有一个这样的文件夹

project\
    --dbrowse\
        __init__.py
        urls.py
现在是dbrowse/url.py

这是我试图避免像文档建议的那样将databrowse.site.registerMyModel放入项目的根url.py中。我不喜欢用databrowse.site.registerMyModel污染我的项目main url.py


然而,我仍然不明白为什么这会导致反向断裂。但我怀疑这与。*处于模式中有关。

是的,它确实贯穿了您的所有观点。这里有一个很大的警告:您可以运行以下行吗:从myproject.core.views导入viewHallo?尝试更改为绝对导入:myproject.core.views.viewHallo?@Yuji是的,在core.site和core.views.viewHallo上导入失败。我得到的错误信息仍然与我上面发布的相同。我不明白为什么他们中的任何一个都失败了。这些导入成功了吗?文件夹中是否有uuu init_uuuu.py?根项目在sys.path上吗?@Yuji well import core.site可以工作,只要我用反向注释掉任何行。但是,import core.views可以工作,但import core.views.viewHallo只会导致没有名为viewHallo的模块。熟悉吗?第二个错误是预期的,因为viewHallo是一个函数。从myproject.core.views导入viewHallo在python shell中工作吗?我只是想确保python能够导入,这样我们就可以排除python导入问题,并继续讨论django设置问题。
from django.shortcuts import render_to_response
from django.template.context import RequestContext
from site import site_store

def viewHallo (request):
    pass
    return render_to_response ('core.html',
                               {'site':site_store,
                                'title':'i am the hallo view',
                                'content':'Hallo World!',},
                                 context_instance=RequestContext(request))
project\
    --dbrowse\
        __init__.py
        urls.py
from django.conf.urls.defaults import patterns, url
#databrowse
from django.contrib import databrowse

databrowse.site.register(MyModel)

urlpatterns = patterns('',
                       url(r'(.*)',databrowse.site.root, name='dbrowse'),)