현재 등록 할 때 django-registration v0.8a 및 django-recaptcha를 사용하고 있습니다. recaptcha 필드가 나타나면 RegistrationFormUniqueEmail을 작동시킬 수 없다는 점을 제외하면 모든 것이 잘 작동합니다. 여기에 몇 가지 세부 사항이 있습니다.장고 등록 양식 및 등록 고유 이메일 양식
내 보안 문자 \의 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'),
내가 알아챈 한 가지 이상한 행동은 양식의 레이블을 변경하려고 할 때 변경 사항이 반영되지 않는다는 것입니다. 아마도 이것은 제가 간과 한 것과 같은 문제의 일부입니까?
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)"))
즉 레이블 중 하나가 다른 구로 바뀌므로이를 반영해서는 안됩니까?
고마워요!
'RegistrationFormCaptcha', 당신은'RegistrationFormUniqueEmail''에 form_class' 세트 당신은'RegistrationForm'을 edititng 있습니다. 같은 형식이 아니어야합니까? :-) – DrTyrsa
@DrTyrsa 안녕하세요 :) 양식 작동 방식에 대한 오해가있는 경우 용서해주세요. 'RegistrationFormCaptcha'는 'RegistrationForm'의 하위 클래스이므로 'RegistrationForm'을 변경하면 다른 모든 양식에 영향을 미치지 않아야합니까? 이 경우 form_class를 'RegistrationFormUniqueEmail'으로 설정하면 어떤 효과가 있습니까? a) captcha 필드가 사라져야합니다. b) 고유 한 전자 메일 제약이 적용될 것입니다. c) 다른 것입니까? 감사! – nightscent