Я настраиваю новый проект django (версия 2.2) и хочу использовать пользовательскую модель пользователя. Когда я загружал данные о приборах, они терпели неудачу с ошибкой, как показано ниже:
django.db.utils.IntegrityError: Проблема с установкой светильников: вставка или обновление в таблице "doctor_doctor" нарушает ограничение внешнего ключа
ДЕТАЛИ: Ключ (user_ptr_id) = (1) отсутствует в таблице "doctor_user".
Из документа django - https://docs.djangoproject.com/en/2.1/topics/auth/customizing/#using-a-custom-user-model-when-starting-a-project Я понял, что сделал 'python manage.py migrate' перед изменением AUTH_USER_MODEL в settings.py. Поэтому я попытался удалить все таблицы и повторить «python manage.py migrate», но проблема все равно осталась.
Ниже приведен мой код
settings.py
AUTH_USER_MODEL='doctors.User'
models.py
class User(AbstractUser):
mobile = models.CharField(max_length=30)
fixtures_autodump = ['dev_users']
class Meta:
db_table = 'doctors_user'
def __str__(self):
return self.username
class Doctor(User):
personal_id = models.CharField(max_length=255, blank=True)
fixtures_autodump = ['dev_users']
class Meta:
db_table = 'doctors_doctor'
def __str__(self):
return self.username
dev_users.json
[
{
"model": "doctors.doctor",
"pk": 1,
"fields": {
"date_joined": "2019-06-16T09:09:56.127Z",
"email": "user1@localhost.dev",
"first_name": "user1",
"groups": [],
"is_active": true,
"is_staff": true,
"is_superuser": true,
"last_login": null,
"last_name": "test",
"password": "pbkdf2_sha256$36000$nITgYnD9lKzm$cXGlthNYJDrrihQikgyh7HO5hm2fNvH71+fiCoMyIpY=",
"user_permissions": []
}
},
{
"model": "doctors.doctor",
"pk": 2,
"fields": {
"date_joined": "2019-06-16T09:09:56.127Z",
"email": "user2@localhost.dev",
"first_name": "user2",
"groups": [],
"is_active": true,
"is_staff": false,
"is_superuser": false,
"last_login": null,
"last_name": "test",
"password": "pbkdf2_sha256$36000$ohIbxnbyKjNm$smg+FvfhT1cF1kLt93EDz/n5KyfkDupIgkihsNIHQS8=",
"user_permissions": []
}
}
]
Я ожидаю, что загрузка данных прибора может быть успешной, пожалуйста, помогите.