2016-09-04 3 views
1

내가 가지고 FormView 나는 내 템플릿에 {{ form.as_table }} 등이 양식을 렌더링 할 때, 그것은 바로 (I 각 필드에 잘못된 값을 입력 한 경우에만)과 같이 각 필드에서 오류 메시지를 보여줍니다 enter image description here (그들의 배열을하시기 바랍니다 무시) django에서 양식 오류 메시지를 처리하는 방법?

내가 잘이 양식을 보여주고 싶은 때문에

, 그래서 난 내 템플릿을 편집하고 일부 CSS를 추가

<table id="signup-table"> 
    <col width="30%"> 
    <col width="70%"> 
    <tr> 
     <td class="label-tag">{{ signup_form.username.label_tag }}</td> 
     <td class="value">{{ signup_form.username }}</td> 
     {{ signup_form.errors.username }} 
    </tr> 
    <tr> 
     <td class="label-tag">{{ signup_form.password1.label_tag }}</td> 
     <td class="value">{{ signup_form.password1 }}</td> 
     {{ signup_form.errors.password1 }} 
    </tr> 
    <tr> 
     <td class="label-tag">{{ signup_form.password2.label_tag }}</td> 
     <td class="value">{{ signup_form.password2 }}</td> 
     {{ signup_form.errors.password2 }} 
    </tr> 
    <tr> 
     <td class="label-tag">{{ signup_form.name.label_tag }}</td> 
     <td class="value">{{ signup_form.name }}</td> 
     {{ signup_form.errors.name }} 
    </tr> 
    <tr> 
     <td class="label-tag">{{ signup_form.gender.label_tag }}</td> 
     <td class="value">{{ signup_form.gender }}</td> 
     {{ signup_form.errors.gender }} 
    </tr> 
    <tr> 
     <td class="label-tag">{{ signup_form.birth.label_tag }}</td> 
     <td class="value">{{ signup_form.birth }}</td> 
     {{ signup_form.errors.birth }} 
    </tr> 
    <tr> 
     <td class="label-tag">{{ signup_form.phone_number.label_tag }}</td> 
     <td class="value">{{ signup_form.phone_number }}</td> 
     {{ signup_form.errors.phone_number }} 
    </tr> 
    <tr> 
     <td class="label-tag">{{ signup_form.job.label_tag }}</td> 
     <td class="value">{{ signup_form.job }}</td> 
     {{ signup_form.errors.job}} 
    </tr> 
</table> 

을 그리고 지금은 양식의 상단에 오류 메시지를 보여줍니다.

enter image description here 이 경우 각 필드 바로 아래에 오류 메시지를 표시하고 싶습니다. 어떻게해야합니까?

감사합니다.

편집

크롬 View page source : 오류가 바로 각 필드 아래에 있습니다.

<table id="signup-table"> 
    <col width="30%"> 
    <col width="70%"> 
    <tr> 
     <td class="label-tag"><label for="id_username">아이디:</label></td> 
     <td class="value"><input id="id_username" maxlength="20" name="username" placeholder="알파벳, 숫자만 가능(4~20자)" type="text" value="wrongid" /></td> 

    </tr> 
    <tr> 
     <td class="label-tag"><label for="id_password1">비밀번호:</label></td> 
     <td class="value"><input id="id_password1" maxlength="20" name="password1" placeholder="영문,숫자 반드시 포함(6~20자)" type="password" /></td> 

    </tr> 
    <tr> 
     <td class="label-tag"><label for="id_password2">비밀번호 확인:</label></td> 
     <td class="value"><input id="id_password2" maxlength="20" name="password2" placeholder="비밀번호 확인" type="password" /></td> 
     <ul class="errorlist"><li>비밀번호가 너무 짧습니다. 최소 6 문자를 포함해야 합니다.</li><li>패스워드가 너무 일상적인 단어입니다.</li></ul> 
    </tr> 
    <tr> 
     <td class="label-tag"><label for="id_name">이 름:</label></td> 
     <td class="value"><input id="id_name" maxlength="4" name="name" type="text" /></td> 
     <ul class="errorlist"><li>이 항목을 채워주십시오.</li></ul> 
    </tr> 
    <tr> 
     <td class="label-tag"><label for="id_gender">성 별:</label></td> 
     <td class="value"><select id="id_gender" name="gender"> 
     . 
     . 
     . 

크롬 inspect : 모든 오류는

나는 서로 다른 ....

(나는 어떤 csserrorlist에 없었다) 이유를 알 수없는 형태의 상단

있습니다

enter image description here

+0

이것이 더 많은 CSS 문제라고 생각합니다. 오류로 인해 출력되는 CSS와 HTML을 포함시킬 수 있습니까? –

+0

나는 그것을 편집한다. 나는'errorlist'에 대해'css'를 건드리지 않았습니다 – user3595632

+0

폼 앞에 템플릿을 조금 더 포함 할 수 있습니까? 'table' 태그 전에 오류 목록을 렌더링하는 것 같습니다. 또한 두 개의 닫히지 않은 'col' 태그가있는 것 같아서 도움이되지 않을 것입니다. –

답변

0

직접 b를 양식에서 errors를 호출 당신은 각 양식 필드에서 호출해야합니다.

... 
<tr> 
    <td class="label-tag">{{ signup_form.name.label_tag }}</td> 
    <td class="value">{{ signup_form.name }}</td> 
    {{ signup_form.name.errors }} 
</tr> 
<tr> 
    <td class="label-tag">{{ signup_form.gender.label_tag }}</td> 
    <td class="value">{{ signup_form.gender }}</td> 
    {{ signup_form.gender.erros }} 
</tr> 
<tr> 
    <td class="label-tag">{{ signup_form.birth.label_tag }}</td> 
    <td class="value">{{ signup_form.birth }}</td> 
    {{ signup_form.birth.errors }} 
</tr> 
... 

또한 폼의 상단에 {{ signup_form.non_field_errors }}를 추가 할 migth.
docs about errors

관련 문제