Django - 用于创建/编辑用户的set_password

时间:2013-05-30 22:43:38

标签: django

我制作了自己的表单验证器来创建和编辑用户。 用户创建工作正常,密码在数据库中正确散列。 但是当我尝试使用它登录时,我有一个识别错误。 我跟踪了set_password中传递的密码,它是正确的...

可能出现什么问题?

由于

表格:

class UserForm(ModelForm):
    def __init__(self, *args, **kwargs):
        super(UserForm, self).__init__(*args, **kwargs)
        self.fields['groups'].help_text = 'Los grupos a los que este usuario pertenece.'
    class Meta:
        model = User
        fields = {
                    'username',
                    'first_name',
                    'last_name',
                    'email',
                    'is_staff',
                    'is_active',
                    'groups',
                    'password'
                 }
        widgets = {
                   'groups': CheckboxSelectMultiple()
        }
    def save(self, commit=True):
        user = super(UserForm, self).save(commit=False)
        user.set_password(self.cleaned_data["password"])
        if commit:
            user.save()
        return user

观点:

def usuario_new(request):
    form_errors = None
    if request.method == "POST":

        formset = UserForm(request.POST or None)
        if formset.is_valid():
            formset.save()
            return usuarios(request)
    else:
        formset = UserForm()

    context = {'formset': formset,
               'form_errors': form_errors }
    return render_to_response("administracion/usuarios/new.html",
                              context,
                              context_instance=RequestContext(request))

1 个答案:

答案 0 :(得分:0)

好的,有人帮助我。

字段必须使用[]而不是{}我不确定原因,但这解决了我的问题。