Проект Django с ошибкой при загрузке пользовательской модели - PullRequest
1 голос
/ 16 июня 2019

Я настраиваю новый проект 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": []
        }
    }
]

Я ожидаю, что загрузка данных прибора может быть успешной, пожалуйста, помогите.

1 Ответ

0 голосов
/ 17 июня 2019

Мне потребовалось 2 записи в моем файле JSON, одна из которых - Пользователь, а другая - мой пользователь.Значение pk этих 2 должно быть одинаковым.Вот так Django loaddata работает для пользовательских пользователей.Я делаю это изменение, и оно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...