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 に答える