【问题标题】:<Model> matching query does not exist<Model> 匹配查询不存在
【发布时间】:2014-04-12 11:36:07
【问题描述】:

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

我该如何解决这个问题。我只是 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.

【问题讨论】:

  • 请分享一些代码?或者至少是完整的错误消息?

标签: django django-models


【解决方案1】:

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

user.get_profile().is_required_more_info

抛出此异常,因为没有为此用户创建个人资料。请注意,user.get_profile() 自 django 1.5 起已弃用,您应该使用 OneToOne 字段或自定义用户模型,from docs

get_profile() 在 Django 1.5 中已弃用:自 1.5 版以来已弃用: 随着自定义用户模型的引入,使用 AUTH_PROFILE_MODULE 定义单个配置文件模型不再 支持的。有关详细信息,请参阅 Django 1.5 发行说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-26
    • 2012-05-10
    • 2013-03-02
    • 2021-12-10
    • 2021-05-07
    • 2017-01-12
    • 2018-03-11
    • 1970-01-01
    相关资源
    最近更新 更多