KeyError: at 'role_type' while using request.session in Django 3.0
Я пытаюсь получить тип_роли, когда пользователь входит на сервер, когда пользователь входит сразу, я получаю эту проблему
Здесь я использую Django 3.0 и python 3.7
Вот мой views.py
class Dashboard(TemplateView):
template_name = 'dashboard/home.html'
def get_context_data(self):
dashboard_data = {}
is_worker = self.request.session['role_type'] in [
'Job Worker', 'Job Worker with documents']
today = datetime.today()
past_month = today - timedelta(days=30)
dashboard_data['expiry'] = False
dashboard_data['is_worker'] = is_worker
message = self.request
dashboard_data['views'] = DashboardRegistry.get_context(self.request)
print("DASHBOARD DATA")
current_week = datetime.now().date()
dashboard_data['current_week'] = current_week
dashboard_data['last_week'] = current_week - timedelta(days=7)
dashboard_data['client'] = self.client
dashboard_data['user'] = self.user
if self.request.user.company:
dashboard_data.update({'portal_message': PortalMessage.objects.filter(client=self.request.user.client).last()})
else:
pass
dashboard_data.update({'updates': LatestUpdates.objects.all().values()})
dashboard_data.update({'messaging': Messages.objects.filter(client=self.request.user.client).last()})
if self.request.user.role.role_attribute == "Umbrella":
worker = self.request.GET.get('query')
notifications = WorkerNotifications.objects.filter(client=self.request.user.client).order_by('-date')
if worker:
past_2_months = today - timedelta(days=60)
notifications = notifications.filter(worker__name__icontains=worker, date__lte=past_2_months)
paginator = LimitedPaginator(notifications, 30)
page_num = self.request.GET.get('page')
try:
page = paginator.page(page_num)
except PageNotAnInteger:
page = paginator.page(1)
except EmptyPage:
page = paginator.page(paginator.num_pages)
dashboard_data['notifications'] = page
return dashboard_data
вот трассировка моей ошибки
Traceback (most recent call last):
File "/home/abc/xyz/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/abc/xyz/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/abc/xyz/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/abc/xyz/lib/python3.7/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/home/abc/xyz/lib/python3.7/site-packages/django/views/generic/base.py", line 71, in view
return self.dispatch(request, *args, **kwargs)
File "/home/abc/xyz/lib/python3.7/site-packages/django/views/generic/base.py", line 97, in dispatch
return handler(request, *args, **kwargs)
File "/home/abc/xyz/lib/python3.7/site-packages/django/views/generic/base.py", line 158, in get
context = self.get_context_data(**kwargs)
File "/home/abc/test/dev-1.8/mcam/server/mcam/dashboard/views.py", line 116, in get_context_data
is_worker = self.request.session['role_type'] in [
File "/home/abc/xyz/lib/python3.7/site-packages/django/contrib/sessions/backends/base.py", line 64, in __getitem__
return self._session[key]
KeyError: 'role_type'
Как я могу решить эту ошибку
Я отредактировал свой dashboard/views.py, пожалуйста, проверьте сейчас