Внедрение многопользовательских типов для системы управления больницей
Итак, я создаю систему управления больницей в качестве моего домашнего проекта на Django, и одна вещь, которую я понял, это то, что вам нужно реализовать мультисистему из 3 пользователей, которая включает в себя HR, персонал (врач) и пациента. Я перерыл весь интернет в поисках лучшей реализации и ничего не нашел. Лучшее, что я видел, это этот учебный блог Как реализовать многопользовательскую систему, но он не охватывает использование более 3 пользователей, как я хочу. Вот мой текущий user/models.py
from django.db import models
from django.contrib.auth.models import AbstractUser
USER_CHOICE = [
('D', 'Doctor'),
('P', 'Patient'),
('R', 'Receptionist'),
('HR', 'HR')
]
# Create your models here.
class User(AbstractUser):
"""
user class for different users in the database
"""
user_type = models.CharField(choices=USER_CHOICE, max_length=3, default=None)
def is_doctor(self):
""" return True if the user is a doctor and False if not """
if self.user_type == 'D':
return True
return False
def is_patient(self):
""" return True if the user is a patient and False if not """
if self.user_type == 'P':
return True
return False
def is_receptionist(self):
""" return True if the user is a receptionist and False if not """
if self.user_type == 'R':
return True
return False
def is_hr(self):
""" return True if the user is HR and False if not """
if self.user_type == 'HR':
return True
return False
class Meta:
""" Descending order for id """
# ordering = ('id',)
Мне нужна помощь в выборе лучшего способа реализации этого
Можно попробовать использовать flags
в User model
.
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
is_hr = models.BooleanField()
is_doctor = models.BooleanField()
is_patient = models.BooleanField()