Google App Engine用フレームワークKayのデータストアを利用した認証を使用したときのログインフォームをカスタマイズする方法を紹介します。
認証機能を有効にする
Kayでデータストアを利用した認証を使うときは、settings.pyに次のコードを追加します。
※参考:9. 認証の設定 — Kay v0.10.0 documentation
INSTALLED_APPS = (
'kay.auth',
)
MIDDLEWARE_CLASSES = (
'kay.sessions.middleware.SessionMiddleware',
'kay.auth.middleware.AuthenticationMiddleware',
)
AUTH_USER_BACKEND = 'kay.auth.backends.datastore.DatastoreBackend'
AUTH_USER_MODEL = 'kay.auth.models.DatastoreUser'
継承元のテンプレートファイルを変更する
ログインフォームの標準のテンプレートファイルは次の場所にあります。
myproject/kay/auth/templates/loginform.html
このファイルを見ると、先頭に次のコードがあります。
{% extends 'base.html' %}
このことからログインフォームのテンプレートは、base.htmlを継承していることがわかります。
このbase.htmlは、次の場所にあります。
myproject/kay/templates/base.html
このファイルを編集すると、ログインフォームのデザインが変わります。
ただ、フレームワーク内のファイルを変更してしまうと、今後バージョンアップするときなどに、修正したファイルを更新しないように気をつける必要があります。
そこで、settings.TEMPLATE_DIRSを編集して、フレームワーク内のbase.htmlではなく、アプリケーションで用意したbase.htmlを参照するようにします。
settings.py
TEMPLATE_DIRS = (
'myapp/templates',
)
こうすることで、myapp/templates/base.htmlを参照するようになります。
myproject/kay/templates/base.html を myapp/templates/base.html にコピーして、myapp/templates/base.html を編集します。
ログインフォームにアクセスすると、myapp/templates/base.html のテンプレートが適用されていることを確認できます。
Pingback: Kayのログインフォームをカスタマイズする(2) 文言の日本語化する « 山本隆の開発日誌