base.py 979 B

12345678910111213141516171819202122232425262728
  1. from django.views import View
  2. from django.contrib.auth.mixins import UserPassesTestMixin
  3. class BaseView(UserPassesTestMixin, View):
  4. """
  5. Базовый класс представления админ-панели ShariX.
  6. Предоставляет общие методы и функционал, который
  7. может быть использован в других представлениях админ-панели.
  8. """
  9. def dispatch(self, request, *args, **kwargs):
  10. self.user_groups = self.request.user.groups.values_list('name', flat=True)
  11. return super().dispatch(request, *args, **kwargs)
  12. def test_func(self):
  13. return True
  14. def get_context_data(self, **kwargs):
  15. context = super().get_context_data(**kwargs)
  16. context.update({
  17. 'title': self.page_title,
  18. 'current_page': self.page_name,
  19. 'user_groups': self.user_groups
  20. })
  21. return context