Django allauth访问视图

时间:2014-06-10 17:30:39

标签: python django django-allauth

我正在尝试使用django-allauth并从我的自定义模板中提供指向allauth视图的链接。以下是相关的模板代码:

{% if request.user.is_authenticated %}
      <a href="{% url 'allauth.account.views.logout' %}">Sign Out</a>
{% else %}
      <a href="#user-form" class="popup-with-form">Login</a> <a href="#user-form2" class="popup-with-form2">Register</a> 
{% endif %}

这是检查用户是否经过身份验证,如果是,则提供Logout链接。我在过去的项目中使用了这个确切的代码而没有任何问题。在我使用django-allauth==0.12.0的那些项目中。我认为我的问题可能是我在这个项目中使用了最新版本的allauth(0.16.x)但是即使我回滚到0.12.0我仍然会遇到同样的错误。谢谢你的帮助。

编辑:我得到的错误是

NoReverseMatch at /app/

Reverse for 'allauth.account.views.logout' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

1 个答案:

答案 0 :(得分:2)

只需在模板顶部添加以下行:

{% load url from future %}

引号括起来的网址名称与Django&lt; 1.5。为了兼容性在模板中加载上面的库,它应该工作正常。请参阅注释here

P.S你可以使用URL名称,参见here每个URL都有一个名称,可以在模板中使用:

{% url 'account_logout' %}