1

私は初めてでdjango/python、自分の道を進んでいwebappます。問題の 1 つを解決するために支援が必要です。

私のアプリでは、各ユーザー ( from auth_user) をグループ ( from auth_group) の 1 つに割り当てる予定です。各グループには複数のユーザーを含めることができます。auth_groupauth_userおよびにエントリがありauth_user_groupsます。これが私の質問です:

  1. ログイン時に、ログインしているユーザーがどのグループに属しているかを確認したいのですが?

  2. そのグループ情報をセッション/キャッシュに保持して、すべてのページでそのグループに関する情報のみを表示できるようにします。

サンプルコードがあれば素晴らしいでしょう。

4

2 に答える 2

0

context_processor コードの例を使用して、@trinchet の回答を非常によくサポートします。

という名前webappの新しいファイルを作成し、次のcontext_processors.py行を書き込みます。

def user_groups(request):
"""
Add `groups` var to the context with all the
groups the logged in user has, so you can access 
in your templates to this var as: {{ groups }}
"""
groups = None
if request.user.is_authenticated():
    groups = user.groups
return {'groups': groups}

最後に、にsettings.py追加'webbapp.context_processors.user_groups'しますTEMPLATE_CONTEXT_PROCESSOR

 TEMPLATE_CONTEXT_PROCESSORS = (
    'webbapp.context_processors.user_groups', 
)
于 2013-01-08T04:39:30.047 に答える
0

1)userのインスタンスにauth.models.Userなると、ユーザーが属するすべてのグループを を通じて取得できますuser.groups。ログイン時に尋ねたい場合は、ログインビューでこれを行う必要があります。

2)セッションまたはキャッシュのアプローチを使用して対処できますが、これは無関係ですが、グループを取得したら、この値を持つページをレンダリングする必要があります。つまり、これを行うには、テンプレートレンダリングにグループを提供する必要がありますカスタム コンテキスト プロセッサを使用することをお勧めします。

于 2013-01-07T18:56:34.830 に答える