【问题标题】:When I try to delete a Django user, I get “DatabaseError: no such table: auth_message”当我尝试删除 Django 用户时,我收到“DatabaseError: no such table: auth_message”
【发布时间】:2012-02-15 23:13:56
【问题描述】:

我正在创建一个 Django 网站,该网站使用捆绑的身份验证应用程序来创建用户帐户。

在开发过程中,有时我想创建用户帐户,然后将其删除。但是,当我尝试使用 Django shell 删除用户帐户时,出现以下错误:

DatabaseError: no such table: auth_message

代码在装有 Python 2.5 和 Django 1.2.1 的服务器上运行。我在运行 Python 2.6 和 Django 1.4 alpha 的本地计算机上编写了代码(并运行了 syncdb)。

【问题讨论】:

    标签: django django-authentication


    【解决方案1】:

    确保您已添加:

    • django.contrib.messages.middleware.MessageMiddlewaredjango.contrib.auth.middleware.AuthenticationMiddleware 到您的 settings.py 文件中的 MIDDLEWARE_CLASSES
    • django.contrib.authdjango.contrib.messages 到 settings.py 文件中的 INSTALLED_APPS

    如果这不起作用,则可能是您以某种方式弄乱了您的数据库,如果您没有存储太多信息,您可以尝试清除它并使用python manage.py syncdb重新制作它

    【讨论】:

    • 是的,我有这些。 (我认为他们默认在那里,但他们现在肯定在那里,我做了一个干净的syncdb。)
    • 虽然代码运行在使用 Python 2.5 和 Django 1.2.1 的服务器上,但我在运行 Python 2.6 和 Django 1.4 alpha 的本地机器上编写(并运行了 syncdb)。我可以想象这可能会导致服务器上的数据库/代码不匹配。
    • 哇...Django 1.2.x 和 1.4 之间的巨大差异...应用程序本身是为 Django 1.4 和 Python 2.6 编写的吗?
    • 是的,虽然我(据我所知)没有使用任何 1.4 特定的功能,但其他一切似乎都运行良好。不过我无法想象这会长期有效,所以我认为我最好让 2.5 和 1.2 在本地运行。
    • 虽然通过在服务器上运行 syncdb 创建数据库目前是一种解决方法。
    【解决方案2】:

    您是否也在服务器上创建了数据库?您说您在本地计算机上创建了数据库,服务器是否使用本地计算机作为其数据库?如果没有,您还需要在您的服务器上创建表 syncdb

    【讨论】:

    • 是的——数据库是一个 SQLite 3 文件,我已经将它上传到服务器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多