2015-01-30 2 views
1

장고 form.as_p()를 사용하여 몇 가지 필드를 사용자 정의 할 수 있도록 노력했지만 대부분의 경우 간단한 as_p 렌더링이 필요합니다. 필드를 통해 반복하면서 그래서, 나는이에 가장 상태 : 그 외부 쪽의 나는 P의에서 원하는 것들로Django 템플릿 - p 태그가 아무 이유없이 닫혔습니다.

<p> 
        </p> 
<ul class="errorlist"> 
    <li>This field is required.</li> 
</ul> 
<label for="id_name">Name</label> 
<input id="id_name" maxlength="200" name="name" type="text" autocomplete="off"> 
<p></p> 

:

<p> 
    {{ field.errors }} 
    {{ field.label_tag }} 
    {{ field }} 
</p> 

그러나 occaisionally을 내 HTML은 다음과 같이보고 바람이 p가 아니라.

이 문제의 원인은 무엇입니까? 나는 체크와 트리플 체크를했고 나는 클로징 태그를 놓치지 않았다는 것을 안다.

답변

2

HTML이 ulp 내부 구성 요소를 블록 요소를 허용하지 않습니다. 따라서 필드에 오류가 발생하여 ul으로 렌더링되면 브라우저가 유용하게 사용하기 위해 p을 닫습니다. (당신이보고있는 것은 브라우저의 DOM 표현이지, 마술 클로즈 엘리먼트를 포함하지 않는 실제 렌더링 된 HTML이 아니다. 이것을 보려고 "소스보기"를해라.)

오류 태그를 밖으로 이동해야한다. p. 원한다면 div과 같은 것으로 모든 것을 감쌀 수 있습니다.

+0

웹 디자인의 해와 나는 결코 전에 이것에 부딪치지 않았다. 감사! – Danthier

0

html로 양식을 초기화하지 않은 것 같습니다. 다음 예를 참조하십시오

<form method="post" action="." enctype="multipart/form-data"> 
    {% csrf_token %} 
    {% for field in my_form %} 
    <p>{{ field.label_tag }} {{ field }}</p> 
    {% endfor %} 
    <input type="submit" value="Submit Form" /> 
</form> 
관련 문제