0

私はdjangoを初めて使用します。次のテンプレートがあります。

{% if settings.LOGIN_SYSTEM %}
     <a href="{{ settings.LOGOUT_URL }}?target={{ settings.LOGOUT_REDIRECT_URL}}">{% trans %}sign out{% endtrans %}</a>
{% endif %}

すべてのセッションをクリアするビューもあります。

class LogoutView(TemplateView):

    redirect_field_name = "target"

    def get(self, *args, **kwargs):

ログイン信号が LogoutView get メソッドを通過することを確認したいと思います。テンプレートからビュー メソッドを呼び出すことはできますか?

もしそうなら、例は素晴らしいでしょう。

4

2 に答える 2

1

ログアウトするには、GET の代わりに POST を使用します。これはアーキテクチャの問題です。したがって、ログアウトするには、次の例のように投稿リクエストを行う必要があります。

ログアウト テンプレート フォーム

<form action="{% url 'logout' %}" method="post" >
  {% csrf_token %}
  <input type="submit" value="Logout" />
</form>

ログアウト URL

urlpatterns = patterns('',
    url(r'^logout/$', LogoutView.as_view(), name='logout'),
    # other urls...
)

ログアウト ビュー

from django.contrib.auth import logout

class LogoutView(ProcessFormView):
    def post(self, request, *args, **kwargs):
        logout(request)
        return redirect('login-url-name')
于 2013-06-23T00:23:38.277 に答える