2012-04-16 2 views
2

URL은 : http://twitter.github.com/bootstrap/base-css.html#formsdjango-registraton에서 Boostrap의 클라이언트 측 유효성 검사를 사용하는 방법?

내가

<fieldset 
class="control-group error"> 
… 
</fieldset> 

하지만 그를 추가를 추가해야 말한다?

비밀번호가 일치하지 않으면 사용자 이름이 이미 사용 된 경우 이메일 주소가 유효하지 않은 경우 입력란에 빨간색 테두리가 표시되고 오른쪽에 오류 메시지가 표시됩니다 (Twitter Boostrap 양식 페이지)

내 전체 registration_form.html 템플릿입니다.

  1. 이름
  2. 이메일 (다시)
  3. 비밀번호
  4. 비밀번호

단순히 registration_base.html : 그것은 기본적으로 4 개 필드를 포함하는 {{형태}} 태그가 페이지의 기본 구조를 포함하는 base.html을 확장합니다.

{% extends "registration/registration_base.html" %} 
{% block title %}Register for an account{% endblock %} 
{% block content %} 

<table> 
    <form method='post' action='' class="control-group error" >{% csrf_token %} 
     {{ form }} 
     <tr><td></td><td><input type="submit" value="Register" /></td> 
    </form> 
</table> 
{% endblock %} 

예 : enter image description here

답변

4

django-bootstrap 당신을 위해이 작업을 자동으로 수행 훌륭한 라이브러리입니다. 그것은 당신을 위해 렌더되는 사용자 정의 Form 객체를 사용합니다. 장고 등록 과정에서 사용되는 기본 양식은 registration.forms.RegistrationFormUniqueEmail입니다. 이 폼을 django-bootstrap과 결합하려면 두 가지를 상속 한 새로운 클래스를 정의해야합니다. 예를 들어, forms.py 파일이 위치 :

# forms.py 
from bootstrap.forms import BootstrapForm 
from registration.forms import RegistrationFormUniqueEmail 
class RegistrationForm(RegistrationFormUniqueEmail, BootstrapForm): 
    pass 

다음, 당신이 새로운 양식을 사용하는 장고 등록을 이야기해야합니다. 장고 등록을위한 기본 설정은 urls.py에 다음을 추가하는 것입니다 :

# urls.py 
(r'^accounts/', include('registration.backends.default.urls')), 

그러나 이것은 기본 양식을 사용합니다. 사용자 정의하려면 URL을 명시 적으로 지정할 수 있습니다. django-registration의 default backend urls.py에서 복사하십시오. 등록에 대한 기본 항목은 다음과 같습니다

# urls.py 
from registration.views import register 
url(r'^register/$', 
    register, 
    {'backend': 'registration.backends.default.DefaultBackend'}, 
    name='registration_register'), 

당신이 사용자 지정 양식 객체를 사용하도록 지정하려면 the documentation는이 같은 매개 변수, form_class, 통과 할 수 있음을 나타냅니다 :

# urls.py 
from yourapp.forms import RegistrationForm 
from registration.views import register 
url(r'^register/$', 
    register, 
    {'backend': 'registration.backends.default.DefaultBackend' 
    'form_class': RegistrationForm}, 
    name='registration_register'), 

당신을 장고 등록에 사용 된 모든 양식에 대해이 프로세스를 반복 할 수 있습니다.

enter image description here

+0

오류 페이지를 찾을 수 없습니다 오류가있을 때 결과 등록 양식은 다음과 같습니다. 공란을 채우시겠습니까? 나는 장고를 처음 사용한다. 왜 내가 통과하고 아무것도하지 않는 빈 클래스가 필요한가요?^등록 $에 대한 별도의 URL을 작성해야하는 이유는 이미 계정/등록 아래에서 장고 등록을 통해 제공 한 것이있을 때입니다. GitHub에서이 샘플 작업 프로젝트를 업로드 할 수 있다면 정말 고맙겠습니다.고맙습니다! –

+0

나는 무엇이 일어나고 있는지 명확히하기 위해 글을 다시 썼다. 불행히도 내부 프로젝트에서이 코드를 사용하기 때문에 코드에 연결할 수 없습니다. 이것이 도움이되는지 알려주십시오. – jterrace

+0

이러한 광범위한 설명에 감사드립니다. 그것은 효과가!. –