简单的django:这段代码有什么问题?

时间:2012-04-27 13:37:03

标签: django

我有这段代码:

<li><a href="{% url 'django.contrib.auth.views.logout' %}">Logout</a></li>
<li><a href="{% url 'django.contrib.auth.views.account' %}">Account</a></li>

当我运行它时,我得到一个关于它是如何乱码的错误。错误并没有说,当然,它说:

  

渲染时捕获NoReverseMatch:反向'django.contrib.auth.views.account',参数'()'和关键字参数'{}'未找到。

这仅适用于“帐户”选项,“注销”选项可以自行运行。 当然我搜索了SO的错误,它是关于“帐户”在任何地方都不存在的东西 - 但我是django的新手并且不知道如何修复!

所以,假设我想让上面的那一行工作 - 而且通过工作我的意思是作为某个页面的链接出现(当然,这并不重要,但是当它发生时它会显示用户的详细信息〜用户名,更改密码的选项等)我需要做什么?

我的urls.py需要什么吗?我的表格中有什么东西?

UPDATE 好的,所以假设{%url'django.contrib.auth.views.XYZ'%}指向名为XYZ的views类的成员,如果我想添加一个“accounts”页面,我会将其子类化查看类并在那里添加功能? 或者我只是添加一个新的视图('/ accounts /')并在视图中添加这样的东西更健全?

喝彩!

2 个答案:

答案 0 :(得分:2)

该功能/视图(account)不存在。看看代码:

https://github.com/django/django/blob/master/django/contrib/auth/views.py

当然,不存在的视图无法逆转。你想做什么?

回答您在评论中提出的问题(这是BTW的其他问题)

您应该创建自己的视图。 Django中的视图是函数,因此您不能“子类化”它们。你可以重用和组合。

我打算告诉你该怎么做,但最好把你指向正确的位置。从django教程开始:

https://docs.djangoproject.com/en/1.4/intro/tutorial01/

在一个小时内,您将了解整个过程。

作为最后一点,您可以找到处理用户帐户数据的第三方应用程序,您可以查看Pinax,但我建议您自己执行此操作。你会在这个过程中学到很多东西。

答案 1 :(得分:1)

您需要阅读有关URL如何在Django中工作的文档:https://docs.djangoproject.com/en/1.4/topics/http/urls/