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

  • 我的错误:

    提示错误: 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

    请问这个怎么解决?!!!