This site has been moved to dreamerslab.com
本站已經移至 dreamerslab.com
創建models
打開你的/guestbook/models文件,創建如下的資料庫模型:
from google.appengine.ext import db
from django.contrib.auth.models importUser
classGreeting(db.Model):
author = db.ReferenceProperty(User)
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
使用者model將會由app-engine-patch提供,所以這裡不必特意指定了。因為我們希望Django和Google使用者認證可以
生效,所以需要在你的設置中激活中間件並制定正確的使用者model.在/settings.py中替換Django的認證中間件:
# Replace Django’s AuthenticationMiddleware with HybridAuthenticationMiddleware.
MIDDLEWARE_CLASSES =(
…
‘ragendja.auth.middleware.HybridAuthenticationMiddleware’,
…
)
並添加
# Change the User model class
AUTH_USER_MODULE =’ragendja.auth.hybrid_models’
# Add google_login_url and google_logout_url tags
GLOBALTAGS =(‘ragendja.templatetags.googletags’,)
到文件的末尾。
這就是一切。現在你已經可同時使用Django和Google的使用者認證了。另外,你還可以啟用模板標記
以渲染隨時出現的Google登入和登出連結。要嘗試的話,創建一個/guestbook/templates/index.html文件
<html>
<head>
</head>
<body>compliant
<divclass=”login”>
{% if user.is_authenticated %}
Welcome, {{ user.username }}
<ahref=”{% google_logout_url request.get_full_path %}”>Logout</a>
{% else %}
<ahref=”{% google_login_url request.get_full_path %}”>Login</a>
{% endif %}
</div>
</body>
</html>
並且在/guestbook/urls.py中設置URL路由: from django.conf.urls.defaults import*
urlpatterns = patterns(”,
(r’^,’django.views.generic.simple.direct_to_template’,{‘template’:'index.html’}),
)
如果你現在在瀏覽器中加載http://localhost:8000/guestbook/ ,你要看到google認證的請求。
注意: 這裡你通過渲染html模板的同時也見到了Django的generic views是如何生效的.
Recent Comments