Утверждение и отклонение запросов от пользователя, Django/Python
Заранее прошу прощения, потому что для этого конкретного вопроса я не выписал никакого кода. Это так, потому что я не понял, как я могу это сделать.
Я пытаюсь разработать веб-приложение (новичок в программировании), в котором зарегистрированные пользователи могут делать запросы, а затем линейные менеджеры утверждают/отклоняют их (больше похоже на запрос на отпуск). Это будет иметь несколько утверждающих. Я пробовал использовать Django-River, но не могу понять документацию. Есть ли другой способ сделать это? Я не прошу код, все, что я прошу, это чтобы меня направили в правильном направлении и я придумал дальнейшие шаги. Спасибо
Если бы у меня была такая же задача, я бы:
Введите как минимум два типа пользователей (см. этот учебник), подклассифицировав
.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)
Фильтровать обратные вызовы 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
Малейшие возможности (модель заявок студентов на одобрение менеджерами, и их первых страниц) хорошо описаны в любом базовом учебнике по django, и могут быть реализованы на архитектуре starndad django model-view-form
.