簡體   English   中英

如何將“ next”參數傳遞給Django Auth logout_then_login視圖?

[英]How to pass 'next' parameter to Django Auth logout_then_login view?

我正在使用Django 1.6,django.contrib.auth.views。 我正在使用下面的登錄和注銷URL定義。 現在,當用戶單擊我的注銷鏈接時,會像應有的那樣觸發“ logout_then_login”視圖,但是當用戶重新登錄時,未定義“ next”參數,並且該頁面將轉發到默認的“帳戶/配置文件”路徑。 我更希望發生的是logout_then_login視圖將“下一個”值轉發到登錄視圖。

例如,當用戶單擊注銷時,其位於頁面/ foo / bar上。 我希望將它們發送到登錄屏幕,並將'/ foo / bar'設置為下一個參數,因此當他們再次登錄時,它們又回到了原先的頁面。 我希望它是動態的,基於單擊注銷鏈接時的request.path。 我知道在未定義時覆蓋下一個默認值的靜態解決方案。

當前的urls.py:

from django.contrib.auth.views import login, logout_then_login


urlpatterns = patterns('base.views',
    url(r'^accounts/login/$',  login, name='login'),
    url(r'^accounts/logout/$', logout_then_login, name='logout'),
)

我已經嘗試將extra_context參數用於logout_then_login,但是甚至不確定在模板中使用命名的url應該看起來如何:

<a href="{% url 'logout' extra_context={'next': request.path } %}">Log Out</a>

我是在正確的軌道上嗎-還是有更好的方法來做到這一點?

好的,事實證明這很容易。 當我嘗試將下一個參數填充到url模板標記中時,我想得太多了。

我只需要在url模板標記之后添加下一個參數:

<a href="{% url 'logout' %}?next={{request.path}}"> Log Out</a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM