Как правильно добавить модель пользователя в модель профиля Django? - PullRequest
0 голосов
/ 18 марта 2020

Я новичок в Django и пытаюсь создать модель профиля (пациента). Вот мои модели.

from django.db import models
from django.contrib.auth.models import User

class Patient(models.Model):
  user = models.OneToOneField(User, on_delete=models.CASCADE)
  age = models.PositiveSmallIntegerField()
  gender = models.CharField(max_length=1)

  def __str__(self):
    return str(self.user.username)

class Doctor(models.Model):
  name = models.CharField(max_length=50)
  max_slots = models.PositiveIntegerField(default=10)
  available = models.PositiveIntegerField(default=0)

  def __str__(self):
    return str(self.name)

class Assistant(models.Model):
  name =  models.CharField(max_length=50)
  docid = models.OneToOneField('Doctor', on_delete=models.CASCADE)

  def __str__(self):
    return str(self.name)

class Appointment(models.Model):
  confirmed = models.BooleanField(default=False)
  patid = models.OneToOneField('Patient', on_delete=models.CASCADE)
  docid = models.ForeignKey('Doctor', on_delete=models.CASCADE)
  assid = models.ForeignKey('Assistant', on_delete=models.CASCADE)

  def __str__(self):
    return str(self.patid)

Последний файл миграции

class Migration(migrations.Migration):

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('doctor', '0014_auto_20200318_0219'),
    ]

    operations = [
        migrations.AlterField(
            model_name='patient',
            name='user',
            field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
        ),
    ]

и ошибка, которую я получаю при запуске миграции

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, doctor, sessions
Running migrations:
  Applying doctor.0011_auto_20200318_0211...Traceback (most recent call last):
  File "C:\Users\syd's\.virtualenvs\django-hospital-0gp1XnhJ\lib\site-packages\django\db\backends\utils.py", line 86, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "doctor_patient" does not exist

Я пытался сбросить все свои таблицы и снова запускаю миграцию, но безрезультатно.

PS Имя моего Django приложения - «доктор», и я использую PostgreSQL. Я запустил начальную миграцию с именем пользователя в качестве CharField, а затем решил использовать модель User в качестве OneToOneField.

...