2016-07-19 8 views
-1

私はDjango 1.8.13を持っています。自分のコンテキストプロセッサから変数が必要なのは、ユーザーが認証されたときだけです。私のコンテキストプロセッサ:Django。自分のコンテキストプロセッサから変数が必要なのは、ユーザが認証されたときだけです

ユーザーが認証されないと、空の辞書が返され、エラーが発生します(コンテキストプロセッサは空のdictを返すことができないため)。コンテキスト・プロセッサは、ユーザーが認証されている場合のみ使用できますか?

+0

ケアエラーが何であるかを私たちに伝えるために:

あなたは代わりに、ユーザーが認証されていないuser_rewNoneにコンテキスト変数の値を設定することができますか? – Sayse

+0

私の質問は、エラーに関することではありません。それは「ユーザーが認証されている場合にのみコンテキストプロセッサを使用できますか?コンテキストプロセッサが空のdictを返すことができないので、空のdictはエラーを引き起こします。私の場合は、ユーザーが認証されていないときはdictは空です。 – Swallow

答えて

2

コンテキストプロセッサは、ユーザの認証ステータスに基づいて有効/無効にすることはできません。

def comment_rew(request): 
    context_dict = {'user_rew': None} 
    if request.user.is_authenticated(): 
     user = request.user 
     user_rew = user.review_set.all().count() 
     context_dict['user_rew'] = user_rew 
    return context_dict 
+0

答えをありがとう! – Swallow

関連する問題