Форма Джанго недействительна, не могу понять, почему - PullRequest
0 голосов
/ 14 мая 2019

Я только что создал форму регистрации в Django, и она по какой-то причине недопустима, поскольку я не могу расшифровать. Я добавил поле, в которое пользователь мог вставить регистрационный токен, если это поможет.

Форма:

class SignupForm(UserCreationForm):     
    token = forms.CharField()
    class Meta:
        model = User
        fields = ('username', 'password')

Шаблон:

<form action="/register/" method="post">
    {% csrf_token %}
    <label>Username:</label>{{ form.username }}<br>
    <label>Password:</label>{{ form.password }}<br>
    <label>Token:{{ form.token }}<br>
<button type="submit">Signup</button>
</form>

Вид:

def signup(request):
    if request.method == 'GET':
        form = SignupForm()
        return render(request, 'signup.html',{'form':form})
    if request.method == 'POST' and  request.user.is_authenticated == False:
        form = SignupForm(request.POST)
        if form.is_valid(): #this is where it seems to be stuck
            user = form.save(commit=False)
            username = form.cleaned_data('username')
            password = form.cleaned_data('password')
            token = form.cleaned_data('token')
            if SignupToken.objects.filter(token = token).exists():
                user.save()
                db_token = RegistrationToken.objects.filter(token = token)
                db_token.delete()
                sign_in_user = authenticate(request, username, password)
                if sign_in_user is not None:
                    login(request, sign_in_user)
                    return redirect('home')
        else:
            message = 'Something went wrong.'
            return render(request, 'signup.html', {'message':message})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...