New SuperUser - "RelatedObjectDoesNotExist Exception - User has no student" when accessing /start
As a new superuser when trying to access /start the following Exception is thrown.
`Environment:
Request Method: GET Request URL: http://127.0.0.1:8000/start/
Django Version: 1.10.7 Python Version: 3.6.2 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_extensions', 'compressor', 'core'] Installed Middleware: ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner 42. response = get_response(request)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 23. return view_func(request, *args, **kwargs)
File "/home/robin/Documents/grady/core/views/user_startpages.py" in user_home 15. return StudentStartPage.as_view()(request)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/views/generic/base.py" in view 68. return self.dispatch(request, *args, **kwargs)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/utils/decorators.py" in _wrapper 67. return bound_func(*args, **kwargs)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 23. return view_func(request, *args, **kwargs)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/utils/decorators.py" in bound_func 63. return func.get(self, type(self))(*args2, **kwargs2)
File "/home/robin/Documents/grady/core/views/generics.py" in dispatch 12. return super().dispatch(*args, **kwargs)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/views/generic/base.py" in dispatch 88. return handler(request, *args, **kwargs)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/views/generic/detail.py" in get 115. self.object = self.get_object()
File "/home/robin/Documents/grady/core/views/user_startpages.py" in get_object 49. return self.request.user.student
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/utils/functional.py" in inner 235. return func(self._wrapped, *args)
File "/home/robin/Documents/grady/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py" in get 370. self.related.get_accessor_name()
Exception Type: RelatedObjectDoesNotExist at /start/ Exception Value: User has no student. `
The problem lies in core/custom_annotations.py line 13:
return bool(user.groups.filter(name__in=group_list)) or user.is_superuser
resulting core/views/user_startpages.py line 12:
@login_required(login_url='/') def user_home(request): if in_groups(request.user, ('Students', )): return StudentStartPage.as_view()(request) elif in_groups(request.user, ('Tutors', )): return TutorStartPage.as_view()(request) elif in_groups(request.user, ('Reviewers', )): return ReviewerFeedbackListView.as_view()(request) else: return HttpResponseRedirect(reverse('index'))
to render the student startpage.