非常にDjangoの新機能です。私はカスタムフォーム入力でユーザー登録プロセスを作成しようとしています。しかし、データベースへの新規ユーザーの一般的な永続性にはいくつかの問題があります。これは私が私のforms.pyで定義されたものです:Djangoユーザー登録 - 何が間違っているのかわからない
class UserRegistrationForm(UserCreationForm):
required_css_class = 'required'
email = forms.EmailField()
first_name = forms.CharField()
last_name = forms.CharField()
class Meta:
model = User
fields = ('username', 'email', 'first_name', 'last_name')
def __init__(self, *args, **kwargs):
super(UserRegistrationForm, self).__init__(*args, **kwargs)
self.fields['username'].widget = TextInput(attrs={'placeholder': 'Username'})
self.fields['username'].required = True
self.fields['username'].error_messages = {'required': 'Please enter your username'}
self.fields['email'].widget = EmailInput(attrs={'placeholder': 'Email'})
self.fields['email'].required = True
self.fields['email'].error_messages = {'required': 'Please enter your email'}
self.fields['first_name'].widget = TextInput(attrs={'placeholder': 'Forename'})
self.fields['first_name'].required = True
self.fields['first_name'].error_messages = {'required': 'Please enter your first_name'}
self.fields['last_name'].widget = TextInput(attrs={'placeholder': 'Surname'})
self.fields['last_name'].required = True
self.fields['last_name'].error_messages = {'required': 'Please enter your last_name'}
self.fields['password1'].widget = PasswordInput(attrs={'placeholder': 'Password'})
self.fields['password1'].required = True
self.fields['password1'].error_messages = {'required': 'Please enter your Password'}
self.fields['password2'].widget = PasswordInput(attrs={'placeholder': 'Confirm password'})
self.fields['password2'].required = True
self.fields['password2'].error_messages = {'required': 'Please confirm your Password'}
私も、私のviews.pyファイルに次の持っている:それはdoesnの
- :心配何
class UserRegistrationView(FormView): disallowed_url = '' form_class = UserRegistrationForm success_url = '/blog' template_name = 'oauth/user/registration_form.html' def registration_allowed(self): return getattr(settings, 'REGISTRATION_OPEN', True) def register(self, request): if request.method == 'POST': form = UserRegistrationForm(request.POST) if form.is_valid(): new_user = form.save(commit=False) new_user.set_password(form.cleaned_data['password1']) new_user.save() return render(request, 'blog/post/list.html', { 'new_user': new_user }) else: return render(request, 'oauth/user/registration_form.html', { 'form': form }) def get_success_url(self, user=None): return super(UserRegistrationView, self).get_success_url()
データベースに新しいユーザーを作成してログインします(一般管理者ダッシュボードで新しく作成されたユーザーを表示する必要がありますか?)
- スーパーユーザーでサインインできますr! (私は本当にそのような1ビットを取得しないように、真剣に私が試してもそれを書くことはできませんでした!)
私が間違っていた可能性がありますすべてのヘルプは大いに感謝します!
私はそれをクラスベースのビューにするためにどのような方法で呼び出すことができますか?あなたが知っているクラスベースのレジスタビューの例はありますか? –
多くの。しかしまずは、ドキュメントやccbv.co.ukのようなクラスベースのビューの仕組みを理解する必要があります。たとえば、そのレジスタメソッドのほとんどのコードは、ビューがあなたのために実行するので、無関係です。実際のユーザ作成は 'form_valid'になります。 –
Hmmm、ccbv.co.ukには、クラスベースのユーザー登録ビューの例は含まれていません。 –