我从三天前开始学习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.
答案 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发行说明。