<model>匹配查询不存在</model>

时间:2014-03-09 12:08:50

标签: django django-models

我从三天前开始学习python django。 我想从模型中删除一个字段,所以我把那个字段的'#'放在前面。 然后我再次启动服务器,但它给了我这样的错误信息 'Userprofile匹配查询不存在'(Userprofile是我制作的模型。)

我该如何解决这个问题。我只是django的新手,所以即使问我的问题也不容易。如果线索不够,请告诉我还需要哪些其他信息。

p.s这是总错误消息。

Environment:


Request Method: GET
Request URL: h ttp://localhost:8000/

Django Version: 1.6.1
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'admin_tools',
 'admin_tools.theming',
 'admin_tools.menu',
 'admin_tools.dashboard',
 'django.contrib.admin',
 'south',
 'autocomplete_light',
 'djcelery',
 'asap_web',
 'facebook',
 'venue',
 'notification',
 'study',
 'general',
 'member',
 'advertise')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in     get_response
  114.                     response = wrapped_callback(request, *callback_args,     **callback_kwargs)
File "/home/jaehoon/PycharmProjects/studysearch/asap_web/__init__.py" in __call__
  89.         return main()
File "/home/jaehoon/PycharmProjects/studysearch/asap_web/__init__.py" in main
  25.             return process_request()
File "/home/jaehoon/PycharmProjects/studysearch/asap_web/__init__.py" in process_request
  53.                     return _call_proper_request_processor()
File "/home/jaehoon/PycharmProjects/studysearch/asap_web/__init__.py" in     _call_proper_request_processor
  77.                     return getattr(self, method_name)(request, *self.args,     **kwargs)
File "/home/jaehoon/PycharmProjects/studysearch/general/views.py" in process_get_request
  19.         if user.is_authenticated() and user.get_profile().is_required_more_info:
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/models.py" in get_profile
  441.                                    self._state.db).get(user__id__exact=self.id)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in get
  307.                 self.model._meta.object_name)

Exception Type: DoesNotExist at /
Exception Value: UserProfile matching query does not exist.

1 个答案:

答案 0 :(得分:0)

当您使用get检索单个实例但它不存在时引发的异常是DoesNotExist。在process_get_request视图中:

user.get_profile().is_required_more_info

正在抛出此异常,因为没有为此用户创建配置文件。请注意,自django 1.5以来,user.get_profile()已弃用,您应该使用OneToOne字段或自定义用户模型,from docs

  

get_profile()在Django 1.5中不推荐使用:从1.5版开始不推荐使用:   随着自定义用户模型的推出,使用   AUTH_PROFILE_MODULE不再定义单个配置文件模型   支持的。有关更多信息,请参阅Django 1.5发行说明。