AttributeError at jobapplicanttype object Applicant has no attribute objectRequest Method GETRequest URL http1270018000jobapplicantDjango Version 30Exception Type AttributeErrorException Value type ob
在代码中,出现了一个错误的属性访问,即在第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]
``
原文地址: https://www.cveoy.top/t/topic/e9yy 著作权归作者所有。请勿转载和采集!