Django:当删除db.sql3文件/新数据库时,无法创建用户:save()得到了意外的关键字参数'force_insert'

时间:2018-12-16 12:50:17

标签: django django-models sqlite django-2.0

我的目标:

我想从头开始/重新创建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()

我的尝试

  • 与此相关的大多数在线帖子已过时,引用的功能在Django版本(2.1.4)中已不再是最新的,例如syncdb。
  • 我花了很长时间尝试寻找有关重置数据库/删除表/重新启动数据库的“最佳实践”,但是那些有用的文章大多已经有5年历史了,并且再次引用Django 2中没有的功能或引用生产数据库。
  • 我已从头开始重新构建项目3次,以解决该问题,但是我宁愿尝试找到该问题的解决方案,因为我希望我需要多次多次丢弃/删除/删除开发数据库文件db.sql3。前进

问题:

  • 在Django 2版开发过程中,是否有人可以分享有关删除和重新创建数据库文件的最佳实践。
  • 错误是什么以及如何解决?

      

    TypeError:save()得到了意外的关键字参数'force_insert'。

0 个答案:

没有答案