使用app-engine-patch發揮Django的威力(六)

researcher

This site has been moved to dreamerslab.com

本站已經移至 dreamerslab.com

Django使用者登入

添加這個到你的/guestbook/urls.py:

urlpatterns = patterns(”,

(r’^login/,’django.contrib.auth.views.login’,{‘template_name’:'guestbook/user_create_form.html’}),
)

請注意我已經重用了使用者創建的模板,以使你避免再次copy&paste.就是這樣了。創建一個新的使用者或者打開 http://localhost:8000/guestbook/login/ 看看generic view是如何生效的。

注意:如果沒有特別規定的話,成功登入後登入的generic view將跳轉到/accounts/profile.你可以在settings.py裡面設置
LOGIN_REDIRECT_URL = “/guestbook/”來改變它,不然登入的使用者將會看到404消息頁面.

登出鏈接當前只在google登出使用者面前顯示。為了給Django登出使用者提供,只需在”/guestbook/urls.py”裡面加入如下generic view:

#the “logout” generic view expects a template logged_out.html. Using this generic view, you can redirect the user to
#another page after log out.
(r’^logout/,’django.contrib.auth.views.logout_then_login’,{‘login_url’:'/guestbook/’}),

並且替換/guestbook/templates/index.html 如下:

{%if user.is_active %}<a href=”/guestbook/logout”>
{%else%}<a href=”{% google_logout_url “/guestbook/” %}”>
{% endif %}Logout</a>

因 為Google使用者沒有 is_active 這個域(field set),所以上述例子可以生效。存在一些更好的方法檢查我們正在處理的是哪一類型的使用者,但是對於我們的案例來說這個更簡單並且可以工作。app- engine-patch的程式庫版本中包括區分不同使用者類型的方法。

參考來源

使用app-engine-patch發揮Django的威力

Related Posts


Comments are closed.