错误主要归类为
1)“NoReverseMatch at /”
2)“模板渲染期间出错”
答案 0 :(得分:1)
好的,所以你在模板中有这个:
{% url "bmark_bookmark_user" bookmark.owner.username %}
这是你的追溯:
Reverse for 'bmark_bookmark_user' with arguments '(u'mario',)' and
keyword arguments '{}' not found.
1 pattern(s) tried: ['user/(?P<username>[-\\w+])/$']
你的regexp使用一个命名组(?P<username>[-\\w+])
,它告诉Django你想要使用关键字参数进行查看。这也意味着你必须使用关键字参数来试图反转网址,IOW:
{% url "bmark_bookmark_user" username=bookmark.owner.username %}
在模板和
中reverse("bmark_bookmark_user", kwargs=dict(username=bookmark.owner.username))
在Python代码中。
此外,您的模式无法按预期运行:
>>> re.match("(?P<username>[-\\w+])", "mario").groups()
('m',)
你很可能想要"^/user/(?P<username>[-\\w]+)/$"
代替:
>>> re.match("(?P<username>[-\\w]+)", "mario").groups()
('mario',)
答案 1 :(得分:-1)
重要的错误消息是
Exception Value: Reverse for 'bmark_bookmark_user' with arguments '(u'mario',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['user/(?P<username>[-\\w+])/$']
您尝试按{% url bmark_bookmark_user 'mario' %}
呈现网址,bmark_bookmark_user
用户名mario
与模式不匹配。
怎么样
^user/(?P<username>[0-9A-Za-z-_.]+)/$'
并给出引号,
{% url 'bmark_bookmark_user' 'mario' %}
如果您确定自己的网址有效但仍然发现错误,请尝试将load url from future
放在模板的第一行(只是为了确保导入网址)。