Python Django——型号don';虽然不存在,但Django仍在加载它们

Python Django——型号don';虽然不存在,但Django仍在加载它们,python,django,postgresql,django-models,Python,Django,Postgresql,Django Models,当我试图删除一个用户对象时,我收到一个编程错误,这是User.delete发生的地方,它甚至发生在admin中 错误 Django显然“认为”在auth_user和apithandlers_持卡人之间存在一种关系,这种关系在任何地方都不存在,数据库中没有这方面的列,也没有模型。[y或admin.py在名为apiHandlers的应用程序中,但Django期望它,甚至有一部分管理站点专门用于它。这只是在我从SQLite迁移到PostGreSQL时开始发生的 目前,所有本地依赖项(模型、管理员、表单

当我试图删除一个用户对象时,我收到一个
编程错误
,这是User.delete发生的地方,它甚至发生在admin中

错误

Django显然“认为”在
auth_user
apithandlers_持卡人
之间存在一种关系,这种关系在任何地方都不存在,数据库中没有这方面的列,也没有
模型。[y
admin.py
在名为
apiHandlers
的应用程序中,但Django期望它,甚至有一部分管理站点专门用于它。这只是在我从SQLite迁移到PostGreSQL时开始发生的

目前,所有本地依赖项(模型、管理员、表单和字段)都在一个名为helpers的应用程序中,我不确定这是否有效,但它将所有内容保持在一个位置,并避免了复杂性

更新0.1

不,其中一个可能会有很多更新

我以前在迁移时遇到了一个问题,与Django Rest Framework有关,但我最终通过快速
pip安装到restframework的新更新中解决了这个问题,在进行迁移和迁移时它不再给我任何错误

下面是我从Django管理员那里得到的当前回溯,在其他删除方法中基本相同

`

`

更新0.2

  • 我正在使用
    /manage.py runserver
    (Mac)来运行它,到目前为止,我还没有在我的服务器上用Nginx和WSGI测试它

  • 我没有得到警告说,它可能会影响另一个模型,在管理,例如,我只是得到这个错误立即


这很可能是因为您的某个地方有一个游离的models.pyc文件。请清除所有的*.pyc文件。如果您在linux上,可以尝试以下方法:

find . -name '*pyc' -exec 'rm' '{}' ';'

然后通过
/manage.py makemigrations/apichanders
然后
/manage.py migrate

这很可能是因为您的某个地方有一个散乱的models.pyc文件。请清除所有的*.pyc文件。如果您在linux上,可以尝试类似的方法:

find . -name '*pyc' -exec 'rm' '{}' ';'

接下来,通过
/manage.py makemigrations apithelders
然后
/manage.py migrate

可以生成一个完整的错误堆栈,因为
编程错误对我们来说太模糊了,无法解释。另外,在执行
python manage.py migrate
时,您是否有任何错误?我们可能需要您应用程序中的代码ll,但还不确定是哪些文件。@raphv Yep,刚刚为您完成了这项工作,我也不确定需要哪些代码,所以只有时间才能证明。删除之前您是否收到一条消息,说更改将级联到其他模型?您是否有办法知道完整的SQL请求是什么(可能使用django调试工具栏)?此外,您是否处于生产型环境中(例如apache/nginx+wsgi)或者使用runserver?如果您是第一种情况,您的应用程序由wsgi模块保存在内存中,并且在您重新启动服务器之前可能会引用过时的模型。@raphv完成了这一点,您是否可以生成完整的错误堆栈,因为
编程错误
对我们来说太模糊而无法解释?另外,您在执行
python manage.py时是否有任何错误迁移
?可能也需要应用程序中的代码,但还不确定需要哪些文件。@raphv Yep,刚刚为您完成了这项工作,我也不确定需要哪些代码,所以只有时间才能说明问题。删除前您是否收到消息说更改将级联到其他模型?您是否有办法知道完整的SQL请求是什么(可能使用django调试工具栏)?另外,您是否处于生产型环境中(例如apache/nginx+wsgi)或者使用runserver?如果您是第一种情况,您的应用程序由wsgi模块保存在内存中,并且在您重新启动服务器之前可能会引用过时的模型。@raphv做到了这一点。您的意思是每个.pyc文件,而不仅仅是模型。pyc在运行时清除每个pyc文件。如果您在Linux上,您可以使用“查找”。谢谢您是ha的救命恩人你是说每个.pyc文件,而不仅仅是模型。pyc在你使用pyc文件时,清除每个pyc文件。如果你在Linux上,你可以使用“查找”。谢谢你是一个救命恩人