私は現在、登録部分にdjango-registration v0.8aとdjango-recaptchaを使用しています。私がRegistrationFormUniqueEmailを動作させることができないことを除いて、すべてがrecaptchaフィールドが表示されてうまく動作しています。ここにいくつかの詳細があります。Django登録フォームと登録独自の電子メールフォーム
私は私のCAPTCHAの\ forms.pyが実際に正しいフォームからサブクラス化されることを保証している:
from registration.forms import RegistrationFormUniqueEmail
class RegistrationFormCaptcha(RegistrationFormUniqueEmail):
captcha = ReCaptchaField(attrs={'theme': 'white'})
は私もコールを処理レジスタビューに関連付けられているすべてのURLにform_classキーを配置しています、
url(r'^register/$',
register,
{ 'form_class': RegistrationFormUniqueEmail,
'backend': 'registration.backends.default.DefaultBackend' },
name='registration_register'),
私が気づいた1つの奇妙な動作は、フォームのラベルを変更しようとすると、変更が反映されないことです。おそらくこれは私が何か見落としたかもしれない同じ問題の一部ですか?
class RegistrationForm(forms.Form):
"""
Form for registering a new user account.
Validates that the requested username is not already in use, and
requires the password to be entered twice to catch typos.
Subclasses should feel free to add any additional validation they
need, but should avoid defining a ``save()`` method -- the actual
saving of collected user data is delegated to the active
registration backend.
"""
username = forms.RegexField(regex=r'^\w+$',
max_length=30,
widget=forms.TextInput(attrs=attrs_dict),
label=_("Username"),
error_messages={ 'invalid': _("This value must contain only letters, numbers and underscores.") })
email = forms.EmailField(widget=forms.TextInput(attrs=dict(attrs_dict,
maxlength=75)),
label=_("Email address"))
password1 = forms.CharField(widget=forms.PasswordInput(attrs=attrs_dict, render_value=False),
label=_("Password"))
password2 = forms.CharField(widget=forms.PasswordInput(attrs=attrs_dict, render_value=False),
label=_("Password (again)"))
つまり、ラベルの1つを別のフレーズに変更しても、それを反映させるべきではありませんか?
ありがとうございました!
あなたはRegistrationFormUniqueEmail' 'に' form_class'を設定し、 'RegistrationForm'をedititngされ、' RegistrationFormCaptcha'を使用します。それは同じ形式ではありませんか? :-) – DrTyrsa
@DrTyrsaこんにちは:)私はフォームの仕組みの誤解がある場合、私を許してください。 'RegistrationFormCaptcha'は 'RegistrationForm'のサブクラスなので、 'RegistrationForm'の変更は他のすべてのフォームに影響しませんか?この場合、form_classを 'RegistrationFormUniqueEmail'に設定するとどんな効果がありますか?それは)a)キャプチャのフィールドが消えるべきかb)一意の電子メールの制約が強制されるc)何か他のものはありますか?ありがとう! – nightscent