Django: при удалении файла db.sql3 / новой базы данных невозможно создать пользователя: save () получил неожиданный аргумент ключевого слова 'force_insert' - PullRequest
0 голосов
/ 16 декабря 2018

Моя цель:

Я хочу заново создать базу данных разработки django с нуля / с самого начала.Я использую Django 2.1.4

Мой метод:

  • Я удаляю файл базы данных разработки (db.sql3)
  • после этого я пытаюсь перестроить базу данных, запустив

    python manage.py migrate
    
    python manage.py makemigrations
    
    python manage.py migrate
    
    python manage.py createsuperuser
    
  • Я пробовал несколько вариантов выше, в том числе: порядок команд, изменения в конкретном приложении, создайте обычного пользователя, удалили все файлы миграции.

Результат:

Последний шаг (создание пользователя) приводит к ошибке, которая означаетЯ не могу создать пользователя для базы данных или работать с файлом базы данных:

    File "/..../venv/lib/python3.6/site-packages/django/db/models/query.py", line 413, in create
    obj.save(force_insert=True, using=self.db)
TypeError: save() got an unexpected keyword argument 'force_insert'

Мои настройки:

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

У меня есть одно приложение, которое создает профили пользователей:

    from django.contrib.auth.models import User

    class Profile(models.Model):
          user = models.OneToOneField(User, on_delete=models.CASCADE)

          def __str__(self):
            return f'{self.user.username} Profile'

          def save(self):
            super().save()

Мои попытки:

  • большинство сообщений в сети, связанных с этим, устарели, ссылаясь на функциональность, которая не актуальна longer в версии Django (2.1.4), такой как syncdb.
  • Я потратил много времени, пытаясь найти «лучшие практики» для сброса вашей базы данных / удаления таблиц / запуска поверх вашей базы данных, но эти посты в основном полезны:5 лет и снова ссылаются на функциональность, отсутствующую в Django 2 или ссылающуюся на производственную базу данных.
  • Я пересоздал свой проект с нуля 3 раза, чтобы преодолеть проблему, но я скорее пытаюсь найти решение этой проблемы, так какЯ ожидаю, что мне понадобится удалить / удалить / удалить файл базы данных разработки db.sql3 в несколько раз вперед

Вопрос:

  • Может кто-нибудь поделитьсялучшие практики удаления и повторного создания файла базы данных во время разработки в Django версии 2.
  • В чем ошибка и как ее устранить?

    Ошибка типа: сохранить() получил неожиданный аргумент ключевого слова 'force_insert'.

...