Python django.db.utils.OperationalError:没有这样的表:auth_user

Python django.db.utils.OperationalError:没有这样的表:auth_user,python,django,django-guardian,django-userena,Python,Django,Django Guardian,Django Userena,在安装Django userena之后,出现了一个错误 我的django版本:1.9.5 我只是一步一步地安装django userena,但当我迁移它时,出现了一个错误,我不知道如何解决它 Traceback (most recent call last): File "manage.py", line 12, in <module> execute_from_command_line(sys.argv) File "C:\Python27\lib\site

在安装Django userena之后,出现了一个错误 我的django版本:1.9.5 我只是一步一步地安装django userena,但当我迁移它时,出现了一个错误,我不知道如何解决它

    Traceback (most recent call last):
  File "manage.py", line 12, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 345, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 348, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 399, in execute
    output = self.handle(*args, **options)
  File "C:\Python27\lib\site-packages\django\core\management\commands\migrate.py", line 204, in handle
    emit_post_migrate_signal(self.verbosity, self.interactive, connection.alias)
  File "C:\Python27\lib\site-packages\django\core\management\sql.py", line 50, in emit_post_migrate_signal
    using=db)
  File "C:\Python27\lib\site-packages\django\dispatch\dispatcher.py", line 192, in send
    response = receiver(signal=self, sender=sender, **named)
  File "C:\Python27\lib\site-packages\guardian\management\__init__.py", line 33, in create_anonymous_user
    User.objects.get(**lookup)
  File "C:\Python27\lib\site-packages\django\db\models\manager.py", line 122, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 381, in get
    num = len(clone)
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 240, in __len__
    self._fetch_all()
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 1074, in _fetch_all
    self._result_cache = list(self.iterator())
  File "C:\Python27\lib\site-packages\django\db\models\query.py", line 52, in __iter__
    results = compiler.execute_sql()
  File "C:\Python27\lib\site-packages\django\db\models\sql\compiler.py", line 848, in execute_sql
    cursor.execute(sql, params)
  File "C:\Python27\lib\site-packages\django\db\backends\utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "C:\Python27\lib\site-packages\django\db\backends\utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "C:\Python27\lib\site-packages\django\db\utils.py", line 95, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "C:\Python27\lib\site-packages\django\db\backends\utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "C:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py", line 323, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such table: auth_user
如果Django版本为1.9或更低,请使用

./manage.py syncdb
然后

更多详情


有什么帮助吗?

问题在于这一行:

文件“C:\Python27\lib\site packages\guardian\management\\uuuu init\uuuuu.py”,第33行,在create\u anonymous\u user中
User.objects.get(**查找)

guardian\management\\uuuuu init\uuuuuuuuupy
在定义用户之前正在调用用户

为什么在定义之前要调用它? …嗯,
makemigrations
调用它,以确定
db
中是否有更改,并定义它们(找到的更改)

…所以这是一个“鸡和蛋”的问题

我也有同样的错误,但有问题的代码是我自己的代码(不是像
guardian
那样的库)

我的代码是这样的:

from django.db import OperationalError

try:
    CHAT_BOT_USER, created = User.objects.get_or_create(username='rosty', email=settings.EMAIL_HOST_USER)

except OperationalError:
    CHAT_BOT_USER = None

if created:
    CHAT_BOT_USER.set_password(settings.EMAIL_HOST_PASSWORD)
    CHAT_BOT_USER.save()
CHAT\u BOT\u USER,created=USER.objects.get\u或\u create(username='rosty',\email=settings.email\u HOST\u USER)

有问题的部分是在创建
auth_User
表之前使用的
User

我只在表存在时执行代码来解决这个问题。当没有
操作错误时会发生这种情况。您可以通过以下方式了解它:

from django.db import OperationalError

try:
    CHAT_BOT_USER, created = User.objects.get_or_create(username='rosty', email=settings.EMAIL_HOST_USER)

except OperationalError:
    CHAT_BOT_USER = None

if created:
    CHAT_BOT_USER.set_password(settings.EMAIL_HOST_PASSWORD)
    CHAT_BOT_USER.save()
通过这种方式,
makemigrations
运行
except
代码,
runserver
运行
try
代码


注意
创建的
布尔值,您可以使用任何其他方法来避免
makemigration
运行依赖于
用户的代码。对象….
结果

我得到了相同的错误,为了修复相同的错误,我检查了所述错误表是否存在于连接的数据库中。事实并非如此。再次应用迁移,成功了

python manage.py migrate

python manage.py makemigrations

运行:python3 manage.py迁移

  python manage.py migrate --run-syncdb  

此命令将查看哪些表未创建,并将创建所有需要的表。

我在使用聊天室时遇到了相同的错误。 我通过删除应用程序迁移文件夹中的db.sqlite3文件和0001_initial.py文件来解决问题,然后执行以下语句:-

python manage.py makemigrations
python manage.py migrate
然后我就可以使用

python manage.py createsuperuser

就这样,错误解决了

看起来应用程序
guardian
在数据库还不可用的情况下查询ORM。这是一个错误,你应该报告它。
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser