を使用して、ユーザーごとの追加情報を保存していAUTH_PROFILE_MODULE
ます。
を使用してDjangoテンプレートのユーザーにアクセスできます{{ request.user }}
が、プロファイルには関数を介してのみアクセスできるため、プロファイルのフィールドにアクセスするにはどうすればよいuser.get_profile()
ですか?
毎回プロファイルをテンプレートに明示的に渡す必要が本当にありますか?
を使用して、ユーザーごとの追加情報を保存していAUTH_PROFILE_MODULE
ます。
を使用してDjangoテンプレートのユーザーにアクセスできます{{ request.user }}
が、プロファイルには関数を介してのみアクセスできるため、プロファイルのフィールドにアクセスするにはどうすればよいuser.get_profile()
ですか?
毎回プロファイルをテンプレートに明示的に渡す必要が本当にありますか?
を使用し{{ request.user.get_profile.whatever }}
ます。.get_profile()
Djangoのテンプレート言語は、呼び出し可能なもの(この場合はメソッド)を自動的に呼び出します。
なぜ違うのかわかりませんが、{{request.user}} ではなく {{user}} を使用する必要があります。
はい、request.user.get_profile を使用してテンプレートからプロファイルにアクセスできます
ただし、小さな注意点があります。すべてのユーザーがプロファイルを持っているわけではありません。これは、私の場合は管理者ユーザーの場合でした。{{ request.user.get_profile.whatever }}
そのため、テンプレートから直接呼び出すと
、このような場合にエラーが発生します。
すべてのユーザーが常にプロファイルを持っていることが確実な場合は、テンプレートから安全に呼び出すことができます。それ以外の場合get_profile()
は、ビューの try-except ブロック内から呼び出してテンプレートに渡します。