Утверждение и отклонение запросов от пользователя, Django/Python

Заранее прошу прощения, потому что для этого конкретного вопроса я не выписал никакого кода. Это так, потому что я не понял, как я могу это сделать.

Я пытаюсь разработать веб-приложение (новичок в программировании), в котором зарегистрированные пользователи могут делать запросы, а затем линейные менеджеры утверждают/отклоняют их (больше похоже на запрос на отпуск). Это будет иметь несколько утверждающих. Я пробовал использовать Django-River, но не могу понять документацию. Есть ли другой способ сделать это? Я не прошу код, все, что я прошу, это чтобы меня направили в правильном направлении и я придумал дальнейшие шаги. Спасибо

Если бы у меня была такая же задача, я бы:

  1. Введите как минимум два типа пользователей (см. этот учебник), подклассифицировав django.contrib.auth.models.AbstractUser до пользовательской модели пользователя с добавлением либо bool-полей (is_student и is_manager), либо user_type поля целочисленного выбора. Например, где-то в models.py:

    .
    class User(AbstractUser):
        USER_TYPE_CHOICES = (
            (1, 'STUDENT'),
            (2, 'MANAGER'),
        )
        user_type = PositiveSmallIntegerField(choices=USER_TYPE_CHOICES, default=1)
        #...
        #or
        #...
        is_manager = BooleanField(default=False)
        is_student = BooleanField(default=True)
    
  2. Фильтровать обратные вызовы API по типу пользователя, например, где-нибудь в views.py:

    .
    from django.http import HttpResponse
    from django.views import View
    from django.http.response import Http404
    
    class SomeView(View):
        def get(self, request, *args, **kwargs):
            if not request.user.user_type==User.USER_TYPE_CHOICES[1][0]:
                raise Http404
            #coutinue your request processing
        #...
        #or
        #...
        def get(self, request, *args, **kwargs):
            if not request.user.is_manager:
                raise Http404
            #coutinue your request processing
    
  3. Малейшие возможности (модель заявок студентов на одобрение менеджерами, и их первых страниц) хорошо описаны в любом базовом учебнике по django, и могут быть реализованы на архитектуре starndad django model-view-form

    .
Вернуться на верх