DoesNotExist: User matching query does not exist.
如果是用户登录视图函数里出现的这个错误。可能有两种原因。
1、获取到的用户名不存在,判断逻辑没有写好。
解决办法:
可以使用try…except…语句将可能会导致程序终止的语句包涵其中,例如:
try: User.objects.filter(username=username).get().username except: pass
2、验证密码的时候没有对提交的密码进行加密验证。 如果用的自己写的加密方法就用自己的方法进行加密之后验证。如果用的Django自带的用户模型,请先
from django.contrib.auth import authenticate, login
然后再对密码进行验证
user = authenticate(username=user_name, password=pass_word)
评论 3
还有一个更加高级的方法:get_object_or_404
from django.shortcuts import get_object_or_404
我的错误:
提示错误: Exception Type: AttributeError Exception Value: type object 'Person' has no attribute 'DoesNoExist'
源码: def person_detail(request, pk): try: p = Person.objects.get(pk=pk) except Person.DoesNoExist: raise Http404('Person Does Not Exit')
引入的对象为: from django.http import HttpResponse, HttpResponseRedirect, Http404 from app1.models import Person
请问这个怎么解决?!!!