2013-06-11 59 views
1

在我的django應用程序中,我發送一封電子郵件,其中包含指向其他頁面的鏈接:domain/project/user/1,這需要用戶登錄,因此他會自動重定向到域/帳戶/登錄。 但是,當用戶這樣做時,他被重定向到:domain/project /,但我希望他被重定向到:domain/project/user/1。
我該怎麼做?django登錄上一頁

回答

2

默認情況下,重定向由URL中的?next=驅動,前提是您在設置中具有正確的請求上下文預處理器。

settings.py:

TEMPLATE_CONTEXT_PROCESSORS += (
    "django.core.context_processors.request", 
) 

而且在模板中,在那裏你會從,:

base.html文件發送用戶:

<a href="{% url 'login' %}?next={{request.path}}">Log me in here</a> 
+0

我看到了另一個話題,但重定向是自動的,我不想使用鏈接。 – user1847729

+0

然後,您可以編寫一箇中間件,檢測上下文中是否存在「next」,並且該鏈接源自登錄,並自動將用戶登錄到該中間件中。 – karthikr

+0

我找到了解決方案。在我的應用程序中,我使用中間件登錄,通過這個我可以得到第一個URL:domain/project/user/1。 所以可以編輯屬性下一= '類LoginRequiredMiddleware: .... DEF process_request(個體,請求): .... 返回HttpResponseRedirect(settings.LOGIN_URL + + firstPath '下一=?')' 謝謝 – user1847729