在html页面中填写注册表单后,它会给出此错误,并使用用户名和密码并将值存储在登录表单中:TypeError at /login/ argument of type 'NoneType' is not iterable.
模型.py:
^{pr2}$
表单.py:from django import forms
from .models import signup
from .models import login
class loginForm(forms.ModelForm):
password=forms.CharField(widget=forms.PasswordInput())
class Meta:
model=login
fields=['username','password']
class SignUpForm(forms.ModelForm):
password=forms.CharField(widget=forms.PasswordInput())
class Meta:
model=signup
fields=['username','full_name', 'email','department','password','pic']
视图.py:from django.shortcuts import render
from .forms import SignUpForm
from .forms import loginForm
from django.db import connection
def home(request):
title= 'welcome'
form = SignUpForm(data = request.POST or None)
print(form.is_valid)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
print(instance)
print(instance.email)
context = {
"title": title,
"form": form,
}
return render(request,"base.html", context)
def login(request):
form = loginForm(data = request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
username=instance.username
password=instance.password
row=auth(username,password)
if password in row:
instance.save()
form1=SignUpForm
context={
"form":form1,
"instance":instance
}
return render(request, "profile.html", context)
title= 'welcome back'
context ={
"title":title,
"form":form
}
return render(request, "login.html", context)
def auth(username,password):
cursor = connection.cursor()
cursor.execute("SELECT password FROM teacher_signup WHERE username = %s", [username])
row = cursor.fetchone()
return row
当单击“注册”按钮[如果密码在第行:]时,将以某种方式调用此行。在