3

朋友们晚上好。

我正在尝试创建一个易于用户注册的应用程序。使用 Django 1.5,我的问题是用户没有保存在数据库中,我的代码在这里:

#forms.py
class UserCreationForm(forms.ModelForm):
    username = forms.RegexField(regex=r'^[\w.@+-]+$',max_length=30,label='Username')
    email = forms.EmailField(label="E-mail")
    password1 = forms.CharField(widget=forms.PasswordInput,label="Password")
    password2 = forms.CharField(widget=forms.PasswordInput,label="Repeat Password")

    class Meta:
        models = User
        fields = ('username','email','password1','password2')

#views.py
from myapp.register.forms import UserCreationForm
class CreateUser(FormView):
     template_name = 'registration/registration_form.html'
     success:url = '/'
     form_class = UserCreationForm
    def is_valid(self, form):
        user = User.objects.create_user(form.cleaned_data['username'],
                                        form.cleaned_data['email'],
                                        form.cleaned_data['password1'])
        #user.save()
        return super(CreateUser, self).form_valid(form)

每次我尝试创建用户时,他们都不会被保存。我究竟做错了什么?

“我正在学习一点英语,请原谅我的错误。谢谢”

4

1 回答 1

1

首先,您确实知道您发表了评论user.save(),对吗?;-)

话虽如此,您以错误的方式处理整个问题。如果您尝试保存模型实例,CreateView请用作视图的基础,而不是FormView. 这样你就不需要编写你所做的所有代码,比如is_valid方法(你也不需要在表单中显式设置字段;它们将从模型的字段中推断出来)。

于 2013-03-24T12:14:03.987 回答