Django - 模型不存在,但Django仍然加载它们 [英] Django -- Models don't exist, but Django still loads them

查看:144
本文介绍了Django - 模型不存在,但Django仍然加载它们的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试删除一个User对象时,我得到一个 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆