Python django 我如何防止在注册中重复输入学号、电子邮件、用户名(unmae)?
Python django how i can prevent the duplicate entry of studnumber,email,username(unmae) in registration?
Python Django 如何防止在注册时重复输入学号、电子邮件、用户名(unmae)?我的 python 文件是视图、URL、模型,settings.py
from django.shortcuts import redirect, render
from register.models import newacc
from django.contrib import messages
def Unreg(request):
if request.method=='POST':
studnumber=request.POST['studnumber']
fname=request.POST['fname']
age=request.POST['age']
gender=request.POST['gender']
uname=request.POST['uname']
email=request.POST['email']
pwd=request.POST['pwd']
contact=request.POST['contact']
newacc(studnumber=studnumber,fname=fname,age=age,gender=gender,uname=uname,email=email,pwd=pwd,contact=contact).save()
messages.success(request,"The New User is save !")
return render(request,'Registration.html')
else:
return render(request,'Registration.html')
首先,您必须在模型中定义以下内容:
class newacc(models.Model):
# Your fields here...
class Meta:
unique_together = ('studnumber','email','uname')
这样做,如果您调用方法 newacc.save() 并且该限制不正确,它将引发异常。
在视图中,最好的方法和标准方法是使用 Forms
,django 提供了一个名为 ModelForm
的特定 class 来帮助您处理模型。
例如,要为我们的模型创建一个表单,我们可以这样做:
class NewACCForm(forms.ModelForm):
class Meta:
model = newacc
fields = "__all__"
它将创建一个表单,允许您验证您在模型中定义的约束是否正确,并且您可以根据该表单的验证执行操作。
现在您的视图将类似于以下代码:
def Unreg(request):
if request.method=='POST':
form = NewACCForm(request.POST)
if form.is_valid():
form.save()
messages.success(request,"The New User is save !")
else:
messages.error(request, "Was not possible to save the user")
return render(request,'Registration.html')
您当然可以对其进行改进,但我只是在向您介绍 Django 中缺少的部分的基本概念,您必须在 Django 中学习才能轻松快速地创建应用程序。
Python Django 如何防止在注册时重复输入学号、电子邮件、用户名(unmae)?我的 python 文件是视图、URL、模型,settings.py
from django.shortcuts import redirect, render
from register.models import newacc
from django.contrib import messages
def Unreg(request):
if request.method=='POST':
studnumber=request.POST['studnumber']
fname=request.POST['fname']
age=request.POST['age']
gender=request.POST['gender']
uname=request.POST['uname']
email=request.POST['email']
pwd=request.POST['pwd']
contact=request.POST['contact']
newacc(studnumber=studnumber,fname=fname,age=age,gender=gender,uname=uname,email=email,pwd=pwd,contact=contact).save()
messages.success(request,"The New User is save !")
return render(request,'Registration.html')
else:
return render(request,'Registration.html')
首先,您必须在模型中定义以下内容:
class newacc(models.Model):
# Your fields here...
class Meta:
unique_together = ('studnumber','email','uname')
这样做,如果您调用方法 newacc.save() 并且该限制不正确,它将引发异常。
在视图中,最好的方法和标准方法是使用 Forms
,django 提供了一个名为 ModelForm
的特定 class 来帮助您处理模型。
例如,要为我们的模型创建一个表单,我们可以这样做:
class NewACCForm(forms.ModelForm):
class Meta:
model = newacc
fields = "__all__"
它将创建一个表单,允许您验证您在模型中定义的约束是否正确,并且您可以根据该表单的验证执行操作。
现在您的视图将类似于以下代码:
def Unreg(request):
if request.method=='POST':
form = NewACCForm(request.POST)
if form.is_valid():
form.save()
messages.success(request,"The New User is save !")
else:
messages.error(request, "Was not possible to save the user")
return render(request,'Registration.html')
您当然可以对其进行改进,但我只是在向您介绍 Django 中缺少的部分的基本概念,您必须在 Django 中学习才能轻松快速地创建应用程序。