0

ユーザーがログインしているかどうかに基づいて、コンテンツを (すべてのページで) 横に表示するにはどうすればよいですか? base.htmlログイン/登録フォーム (ユーザーがログインしていない場合) またはダッシュボード (ユーザーがログインしている場合) のいずれかが入力されるサイドバー領域が my に定義されています。

これを自分のサイトのすべての Web ページに共通にするにはどうすればよいですか? 新しいビューが呼び出されるたびに手動でユーザーをチェックし、user変数を my に渡す必要がありますrender_to_response()か? もっと簡単な方法があるはずです。

4

1 に答える 1

3

私があなたを正しく理解していれば、システム全体の解決策はないと思います。ユーザーが認証されているかどうかに基づいて、各ページを確認する必要があります。

テンプレートに次のコードを追加して、ユーザーが有効で認証済みかどうかを確認します。また、ユーザー レベルのコンテンツを含むテンプレートごとにこれを行う必要があります。

{% if user.is_authenticated %}
  ... html stuff ...
{% endif %}

別のアイデアは、装飾を使用すること@login_requiredです。ただし、ユーザー レベルのコンテンツを含む各ビューに追加する必要があります。

于 2012-04-26T08:08:39.930 に答える