2

Как создать форму «подтвердить с паролем» в Django 1.5? Я собираюсь сделать функцию для отключения учетной записи пользователя, но учетная запись не должна быть отключена, если пользователь не может указать правильный пароль. Я попытался с FormView и form_class=AuthenticationForm, но он показывает, как имя пользователя и пароль, и я хочу, только пароль, поскольку пользователь уже вошел вПодтвердить действие с паролем в Django 1.5

ответ

1

Написать форму проверки пароля:.

формы. ру

from django import forms 
from django.contrib.auth.models import check_password 

class ValidatePasswordForm(forms.Form): 
    password = forms.CharField(label="Your Password", 
     widget=forms.PasswordInput) 

    def __init__(self, *args, **kwargs): 
     self.user = kwargs.pop('user') 
     super(ValidatePasswordForm, self).__init__(*args, **kwargs) 

    def clean_password(self): 
     password = self.cleaned_data['password'] 
     valid = check_password(password, self.user.password) 
     if not valid: 
      raise forms.ValidationError('Invalid password') 
     return password 

views.py

from django.shortcuts import render_to_response 
from django.template import RequestContext 

from myapp.forms import ValidatePasswordForm 

@login_required 
def validate_password(request): 
    form = ValidatePasswordForm(request.POST or None, user=request.user) 
    if request.method == 'POST': 
     if form.is_valid(): 
      # do something upon validation 
      # disable account 
      pass 
    request_dict = {'form': form} 
    return render_to_response('my_template.html', 
     request_dict, context_instance=RequestContext(request)) 
Смежные вопросы