Django - 模型不存在,但Django仍然加载它们 [英] Django -- Models don't exist, but Django still loads them
问题描述
ProgrammingError
,这是User.delete发生的地方,甚至发生在管理员中。 错误
Django显然'认为'在 auth_user之间有一个关系
和 apiHandlers_cardholders
在任何地方都不存在,数据库没有这个列,没有在名为
或 apiHandlers
的应用程序中,[y admin.py
,但Django期望它到,甚至有一部分的管理网站致力于它。当我从SQLite迁移到PostGreSQL时,这只会开始发生。
目前,所有本地依赖项(模型,管理员,表单和字段)都在一个名为helpers的应用程序中,我不知道这是否有效,但是它将所有内容都放在一个地方,避免了复杂化。
更新0.1
不。其中一个可能是许多更新
我曾经在迁移时遇到问题,与Django Rest Framework相关,但我最终设法通过一个快速的code> pip install 到restframework的新更新,它不再给我任何错误,而进行迁移和迁移。
下面是当前的回溯我从Django管理员获得,其他删除方法基本相同。
`
环境:
请求方法:GET
请求URL:http:// localhost:8000 / admin / auth / user / 3 / delete /
Django版本:1.9.2
Python版本:2.7.10
安装的应用程序:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders',
'oau th2_provider',
'apiHandlers',
'frontEnd',
'helpers',
'nonUser']
安装的中间件:
['django。 middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware' ,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
'oauth2_provider.middleware.OAuth2TokenMiddleware']
追溯:
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/core/handlers/base。 pyin get_response
149. response = self.process _exception_by_middleware(e,request)
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/core/handlers/base .pyin get_response
147. response = wrapped_callback(request,* callback_args,** callback_kwargs)
文件/ Users / Mason / Documents / dev / FlowFrameWork / flow-framework / env /lib/python2.7/site-packages/django/contrib/admin/options.pyin wrapper
541. return self.admin_site.admin_view(view)(* args,** kwargs)
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/utils/decorators.py在_wrapped_view
149.响应= view_func(request,* args,** kwargs)
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django /views/decorators/cache.pyin _wrapped_view_func
57. response = view_func(request,* args,** kwargs)
文件/内部
中的用户/ Mason / Documents / dev / FlowFrameWork / flow-framework / env / lib / python2.7 / site-packages / django / contrib / admin / sites.py返回视图(请求,* args,** kwargs)
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/utils/decorators.py in _wrapper
67. return bound_func(* args,** kwargs)
文件/ Users / Mason / Documents / dev / FlowFrameWork / flow-framework / env / lib / python2。 7 / site-packages / django / utils / decorators.pyin _wrapped_view
149. response = view_func(request,* args,** kwargs)
文件/ Users / Mason /文件/ dev / FlowFrameWork / flow-framework / env / lib / python2.7 / site-packages / django / utils / decorators.pyin bound_func
63. return func .__ get __(self,type(self)) (* args2,** kwargs2)
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/utils/decorators内部
中的.py 184. return func(* args,** kwargs)
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django /contrib/admin/options.py在delete_view
1629. [obj],opts,request.user,self.admin_site,using)
文件/ Users / Mason / Documents / dev / FlowFrameWork / flow-framework / env / lib / python2.7 / site-packages / django / contrib / admin / utils.pyin get_deleted_objects
128. collector.collect(objs)
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/contrib/admin/utils.py在收集
193.返回super(NestedObjects,self).collect(objs,source_attr = source_attr,** kwargs)
文件/ Users / Mason / Documents / dev / FlowFrameWork / flow-framework / env / lib / python2。 7 / site-packages / django / db / models / deleted.pyin collect
230. elif sub_objs:
文件/ Users / Mason / Documents / dev / FlowFrameWork / flow- framewo __nonzero__中的rk / env / lib / python2.7 / site-packages / django / db / models / query.py
266. return type(self).__ bool __(self)
__bool__中的文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/models/query.py
262. self._fetch_all ()
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/models/query.py中_fetch_all
1074. self._result_cache = list(self.iterator())
文件/ Users / Mason / Documents / dev / FlowFrameWork / flow-framework / env / lib / python2。 7 / site-packages / django / db / models / query.pyin __iter__
52. results = compiler.execute_sql()
文件/ Users / Mason / Documents / dev / execute_sql
中的FlowFrameWork / flow-framework / env / lib / python2.7 / site-packages / django / db / models / sql / compiler.py848. cursor.execute(sql,params)
文件/ Users / Mason / Documents / dev / FlowFrameWork / flow-framework /env/lib/python2.7/site-packages/django/db/backends/utils.py执行
79. return super(CursorDebugWrapper,self).execute(sql,params)
$执行
64中的b $ b文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/backends/utils.py。 return self.cursor.execute(sql,params)
文件/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/ db / utils.pyin __exit__
95. six.reraise(dj_exc_type,dj_exc_value,traceback)
文件/ Users / Mason / Documents / dev / FlowFrameWork / flow-framework / env /lib/python2.7/site-packages/django/db/backends/utils.py执行
64. return self.cursor.execute(sql,params)
异常类型:/ admin / auth / user / 3 / delete /
中的ProgrammingError异常值:关系apiHandlers_cardholder不存在
LINE 1:... user。is_active,auth_user。加入日期 从apiHandle ...
^
`
更新0.2
-
我正在使用
。 /management.py runserver
(Mac)运行它,到目前为止,我还没有设法在我的服务器上使用Nginx和WSGI进行测试。 -
我没有收到警告,说可能会影响另一个模型,在管理员中,例如,我刚刚收到此错误。
这很可能是因为你在某个地方有一个流浪的models.pyc文件。清除所有* .pyc文件。如果你在linux上,你可以尝试这样的东西:
find。 -name'* pyc'-exec'rm''{}'';'
./ manage.py makemigrations apihandlers
然后 ./ manage.py migrate
Im getting a ProgrammingError
when I try to delete a User object, this is wherever User.delete occurs, it even happens in the admin.
The Error
Django apparently 'thinks' that there's a relationship between auth_user
and apiHandlers_cardholders
which doesn't exist anywhere, the database doesn't have a column for this, and there is no models.[y
nor admin.py
in the app named apiHandlers
, but Django expects it to, there is even a section of the Admin site devoted to it. This only started happening when I migrated from SQLite to PostGreSQL.
At the moment all the local dependencies (models, admin, forms and fields) are in an app called helpers, I'm not sure if this is efficient, but it keeps everything in one place and avoids complications.
UPDATE 0.1
No. One of the probably gonna be many updates
I used to have a problem when migrating, related to Django Rest Framework, but I eventually managed to fix it by a quick pip install
to a new update of restframework, it's no longer giving me any error while making migrations and migrating.
Below is the current traceback I'm getting from the Django admin, it's basically the same in the other deletion methods.
`
Environment:
Request Method: GET
Request URL: http://localhost:8000/admin/auth/user/3/delete/
Django Version: 1.9.2
Python Version: 2.7.10
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'corsheaders',
'oauth2_provider',
'apiHandlers',
'frontEnd',
'helpers',
'nonUser']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'corsheaders.middleware.CorsMiddleware',
'oauth2_provider.middleware.OAuth2TokenMiddleware']
Traceback:
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
149. response = self.process_exception_by_middleware(e, request)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
147. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/contrib/admin/options.py" in wrapper
541. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/contrib/admin/sites.py" in inner
244. return view(request, *args, **kwargs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapper
67. return bound_func(*args, **kwargs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view
149. response = view_func(request, *args, **kwargs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/utils/decorators.py" in bound_func
63. return func.__get__(self, type(self))(*args2, **kwargs2)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/utils/decorators.py" in inner
184. return func(*args, **kwargs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/contrib/admin/options.py" in delete_view
1629. [obj], opts, request.user, self.admin_site, using)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/contrib/admin/utils.py" in get_deleted_objects
128. collector.collect(objs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/contrib/admin/utils.py" in collect
193. return super(NestedObjects, self).collect(objs, source_attr=source_attr, **kwargs)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/models/deletion.py" in collect
230. elif sub_objs:
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/models/query.py" in __nonzero__
266. return type(self).__bool__(self)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/models/query.py" in __bool__
262. self._fetch_all()
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/models/query.py" in _fetch_all
1074. self._result_cache = list(self.iterator())
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/models/query.py" in __iter__
52. results = compiler.execute_sql()
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
848. cursor.execute(sql, params)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
79. return super(CursorDebugWrapper, self).execute(sql, params)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/utils.py" in __exit__
95. six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/Users/Mason/Documents/dev/FlowFrameWork/flow-framework/env/lib/python2.7/site-packages/django/db/backends/utils.py" in execute
64. return self.cursor.execute(sql, params)
Exception Type: ProgrammingError at /admin/auth/user/3/delete/
Exception Value: relation "apiHandlers_cardholder" does not exist
LINE 1: ...user"."is_active", "auth_user"."date_joined" FROM "apiHandle...
^
`
UPDATE 0.2
I am using
./manage.py runserver
(Mac) to run it, so far I haven't managed to test it with Nginx and WSGI on my server.I am not getting a warning saying that it could affect another model, in the admin, for example, I am just getting this error immediately.
This is very likely to be because you have a stray models.pyc file somewhere. Clear out all the *.pyc files. You can try something like this if you are on linux:
find . -name '*pyc' -exec 'rm' '{}' ';'
Follow that by ./manage.py makemigrations apihandlers
and then ./manage.py migrate
这篇关于Django - 模型不存在,但Django仍然加载它们的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!