2012-02-19 5 views
0

내가 장고의 기본 등록 양식에서 일부 오류 메시지를 변경하려고 : 내가편집 오류 메시지

'무효'변경하려면, 예를 들어

class RegistrationForm(forms.Form): 
    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)")) 

: _ ("이 값은 문자, 숫자 및 밑줄 만 포함해야합니다.") 사용자 이름 필드 의 기본 양식을 편집 할 때마다 변경 사항이 표시되지 않습니다 ... 심지어 chmod를 시도했습니다 ...

또한 사용자 이름 필드에 숫자 만 입력하도록 사용자를 제한하는 방법이 있다면 제안 해주십시오.

답변

0

django.forms.field (423에서 439 행) (django 1.3.1)의 코드를 보면 알 수 있습니다.

RegexField에서 django는 error_messages [ 'invalid']를 키워드 인수 error_message로 대체하며, 기본값은 none입니다. 당신이 RegexField을 유지하려는 경우

그래서 간단하게 수행

username = forms.RegexField(regex=r'^\w+$',max_length=30,widget=forms.TextInput(attrs=attrs_dict),label=_("Username"),error_message = _("This value must contain only letters,numbers and underscores.")) 

는 이름으로 만 자리를 수락하려면, 나는 forms.IntegerField를 사용하는 것이 좋습니다, 그 라인을 따라 뭔가를 줄 것 같습니다

username = forms.IntegerField(min_value = 0, error_messages={'invalid': _("This value must contain only letters,numbers and underscores.")}) 

IntegerField를 사용하는 것이 가장 깨끗하고 좋은 방법입니다. 그리고 원하는대로 할 수 있습니다 : 사용자 이름 만 숫자로 제한하십시오.

+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 맞춤 양식을 수정하면 입력란 설정이 바뀔 수 있습니다. – user1163236