94

を使用して、ユーザーごとの追加情報を保存していAUTH_PROFILE_MODULEます。

を使用してDjangoテンプレートのユーザーにアクセスできます{{ request.user }}が、プロファイルには関数を介してのみアクセスできるため、プロファイルのフィールドにアクセスするにはどうすればよいuser.get_profile()ですか?

毎回プロファイルをテンプレートに明示的に渡す必要が本当にありますか?

4

6 に答える 6

140

を使用し{{ request.user.get_profile.whatever }}ます。.get_profile()Djangoのテンプレート言語は、呼び出し可能なもの(この場合はメソッド)を自動的に呼び出します。

于 2009-01-07T21:24:09.583 に答える
27

なぜ違うのかわかりませんが、{{request.user}} ではなく {{user}} を使用する必要があります。

于 2010-01-22T17:00:28.043 に答える
8

はい、request.user.get_profile を使用してテンプレートからプロファイルにアクセスできます

ただし、小さな注意点があります。すべてのユーザーがプロファイルを持っているわけではありません。これは、私の場合は管理者ユーザーの場合でした。{{ request.user.get_profile.whatever }}そのため、テンプレートから直接呼び出すと 、このような場合にエラーが発生します。

すべてのユーザーが常にプロファイルを持っていることが確実な場合は、テンプレートから安全に呼び出すことができます。それ以外の場合get_profile()は、ビューの try-except ブロック内から呼び出してテンプレートに渡します。

于 2009-01-07T21:41:55.757 に答える