Django: ошибка процессора контекста для анонимного пользователя

Привет, у меня есть модель, в которой хранятся действия пользователей. Эта модель используется для отображения уведомлений вошедшим в систему пользователям. Теперь проблема в том, что код отлично работает с вошедшими в систему пользователями, однако, если я открою домашнюю страницу приложения после выхода из системы, появится следующая ошибка.

TypeError at /

'AnonymousUser' object is not iterable

Request Method:     GET
Request URL:    http://127.0.0.1:8000/
Django Version:     1.10
Exception Type:     TypeError
Exception Value:    

**'AnonymousUser' object is not iterable**

Exception Location:     /Library/Python/2.7/site-packages/django/utils/functional.py in inner, line 235
Python Executable:  /usr/bin/python
Python Version:     2.7.10

Я думаю, что проблема связана с обработчиком контекста шаблона, который я использую в своем приложении.

Пожалуйста, помогите в этом. код контекста

from models import notifications


def activ_notification(request):
    active = notifications.objects.filter(to_user=request.user,viewed=False)[:10]

    return({'alert':active})

Настройки

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'task.notification.activ_notification',
            ],
        },
    },
]

person Pulkit Sharma    schedule 09.12.2016    source источник


Ответы (1)


Попробуйте просто добавить is_authenticated проверьте в своем представлении:

def activ_notification(request):
    active = []
    if request.user.is_authenticated():    
        active = notifications.objects.filter(to_user=request.user,viewed=False)[:10]

    return({'alert':active})
person neverwalkaloner    schedule 09.12.2016