Я хочу создать двух пользователей: patient
и doctor
. Оба пользователя будут использовать некоторые стандартные поля, такие как first_name
, last_name
и т. Д. Однако они должны иметь разные поля. Например, только у doctor
будут поля типа expertise
и days_available
.
Я рассмотрел похожий вопрос, но он не совсем соответствует тому, что мне нужно. Я не обязательно нуждаюсь в пользовательских разрешениях / аутентификации, поскольку мне просто нужны отдельные поля для каждого пользователя. Я пробовал последний подход, расширяя модель пользователя, но когда я создаю пользователя, он не связан с пациентом / врачом. Я должен вручную создать врача и связать его с пользователем.
Как автоматически создать доктора / пациента при создании пользователя?
class User(AbstractUser):
is_doctor = models.BooleanField(default=False)
is_patient = models.BooleanField(default=False)
class Patient(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
user.is_patient = True
pid = models.AutoField(unique=True, primary_key=True) #patient identification
class Doctor(models.Model):
upin = models.AutoField(primary_key=True) #unique physician identification number
user = models.OneToOneField(User, on_delete=models.CASCADE)
user.is_doctor = True
expertise = models.CharField(max_length=20)
days_available = models.DateTimeField(null=True)