Как правильно проверить отправку формы с помощью Django - PullRequest
0 голосов
/ 17 марта 2019

Учусь джанго впервые. Здесь я пытаюсь отправить данные формы в база данных и код работает отлично.

Вот мои views.py

from django.shortcuts import render, redirect, HttpResponseRedirect
from .models import Member

# Create your views here.
#proces form data
def index(request):
    if request.method == 'POST':
        member = Member(username=request.POST['username'], password=request.POST['password'], confirmPassword=request.POST['confirmPassword'], email=request.POST['email'])
        member.save()
        return redirect('/')
    else:
        return render(request, 'web/index.html')

здесь models.py

from django.db import models
# Create your models here.
class Member(models.Model):
    username=models.CharField(max_length=30)
    password=models.CharField(max_length=12)
    confirmPassword=models.CharField(max_length=12)
     email=models.CharField(max_length=30)

    def __str__(self):
        return self.username + " " + self.email

вот index.html

{% extends 'web/base.html' %}
{% block body %}
<form method="POST">
    {% csrf_token %}

            <input type="text" name="username" id="username"/>
            <input type="password" name="password" id="password"/>
            <input type="password" name="confirmPassword" id="confirmPassword"/>
            <input type="text" name="email" id="email"/>

            <button type="submit"> Submit</button>
</form>
{% endblock %}

Вот что я хочу добавить:

Теперь я хочу проверить данные перед отправкой, используя метод cleaned_data [] , а также проверить, что пароль и подтвердить пароль соответствует до отправки формы, но я получаю сообщение об ошибке ниже

identationError; Ожидается идентифицированный блок. Я нашел решение, найденное здесь, но безуспешно ссылка

Вот то, что я пытался на этот счет.

может кто-нибудь мне помочь ...

#proces form data
def index(request):
    if request.method == 'POST':

uname = request.cleaned_data['username']
pass = request.cleaned_data['password']
confirmPass = request.cleaned_data['confirmPassword']
email = request.cleaned_data['email']

if pass != confirmPass:

context = {'msg': 'Passwords does not match'}
return render(request, 'web/error.html', context)
#insert records if things were okay

        member = Member(username=uname, password=pass, confirmPassword=confirmPass, email=email)
        member.save()
        return redirect('/')
    else:
        return render(request, 'web/index.html')

1 Ответ

0 голосов
/ 02 мая 2019

Чтобы использовать метод data_clean(), я создал forms.py и импортировал его в views.py .

Вот как forms.py будет выглядеть как

from django import forms

class signupForm(forms.Form):

    username = forms.CharField(max_length=30)
    password = forms.CharField(max_length=12)
    confirmPassword=forms.CharField(max_length=12)
    email=forms.CharField(max_length=30)

class loginForm(forms.Form):

    username = forms.CharField(max_length=30)
    password = forms.CharField(max_length=12)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...