Python django как я могу предотвратить дублирование ввода studnumber, email, username(unmae) при регистрации?

Python Django как я могу предотвратить дублирование ввода studnumber, email, username(unmae) при регистрации?

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 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, чтобы создавать приложения простым и быстрым способом.

Вернуться на верх