在代码中,出现了一个错误的属性访问,即在第15行中的Applicant.object应该改为Applicant.objects,即为objects属性。修改后的代码如下:

from django.shortcuts import render,redirect,reverse
from django.http.response import  HttpResponse
from user.forms import BOSSLOGINForm,APPLOGINForm
from constants import INVALID_KIND
from user.cbvs import CreateBossView,CreateApplicantView
from user.models import Applicant,Boss

def home(request):
    return render(request,"user/login_home.html")

def login(request, *args, **kwargs):
    if not kwargs or kwargs.get("kind", "") not in ["applicant", "boss"]:
        return HttpResponse(INVALID_KIND)

    kind = kwargs["kind"]
    context = {'kind': kind}

    if request.method == 'POST':
        if kind == "boss":
            form = BOSSLOGINForm(data=request.POST)
        else:
            form = APPLOGINForm(data=request.POST)

        if form.is_valid():
            uid = form.cleaned_data["uid"]
            if len(uid)!=10:
                form.add_error("uid","账号长度必须为10")
            else:
                if kind == "boss":
                    object_set = Boss.objects.filter(uid=uid)
                else:
                    object_set = Applicant.objects.filter(uid=uid)
                if object_set.count() == 0:
                    form.add_error("uid","该账号不存在.")
                else:
                    user = object_set[0]
                    if form.cleaned_data["password"] != user.password:
                        form.add_error("password","密码不正确")
                    else:
                        request.session['kind'] = kind
                        request.session['user'] = uid

                        return redirect("job",kind=kind)

            context['form'] = form
            return render(request,'user/login_detail.html',context)
        else:
            context['form'] = form
    elif request.method== 'GET':
        if request.GET.get('uid'):
            uid = request.GET.get('uid')
            context['uid']=uid
            data = {"uid":uid, 'password':'12345678'}
            if kind == "boss":
                form = BOSSLOGINForm(data)
            else:
                form = APPLOGINForm(data)
        else:
            if kind == "applicant":
                form = APPLOGINForm()
            else:
                form = BOSSLOGINForm()


        context['form'] = form
        if request.GET.get('from_url'):
            context['from_url']= request.GET.get('from_url')

    return  render(request,'user/login_detail.html',context)


def register(request,kind):
    func = None
    if kind == "applicant":
        func = CreateApplicantView.as_view()
    elif kind == "boss":
        func = CreateBossView.as_view()
        print(kind)
    if func:
        return func(request)
    else:
        return HttpResponse(INVALID_KIND)

def logout(request):
    for sv in ["kind","user","id"]:
        if request.session.get(sv):
            del request.session[sv]
``
AttributeError at jobapplicanttype object Applicant has no attribute objectRequest Method	GETRequest URL	http1270018000jobapplicantDjango Version	30Exception Type	AttributeErrorException Value	type ob

原文地址: https://www.cveoy.top/t/topic/e9yy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录