Kayのログインフォームをカスタマイズする(1) 継承元のテンプレートファイルを変更する

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 のテンプレートが適用されていることを確認できます。

次の記事「Kayのログインフォームをカスタマイズする(2) 文言の日本語化する « 山本隆の開発日誌」へ続く。

コメント

  1. Pingback: Kayのログインフォームをカスタマイズする(2) 文言の日本語化する « 山本隆の開発日誌

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です