반응형
자동 렌더링 메서드 'as_p'
{{ form.as_p }}는 Django에서 폼(Form)을 HTML로 자동 렌더링해주는 메서드 중 하나입니다.
as_p는 각 폼 필드를 <p> 태그로 감싸서 출력해 줍니다.

✅ 의미
{{ form.as_p }}
- form은 forms.py에서 정의한 Form 클래스의 인스턴스입니다.
- as_p는 그 폼 안의 필드들을 <p> 태그로 묶어서 출력하는 메서드입니다.
- 결과는 다음과 같은 형태의 HTML로 바뀝니다:
<p>
<label for="id_subject">제목:</label>
<input type="text" name="subject" id="id_subject">
</p>
<p>
<label for="id_content">내용:</label>
<textarea name="content" id="id_content"></textarea>
</p>
🔍 그 외의 렌더링 방법
Django는 as_p 외에도 다음과 같은 메서드를 제공합니다:
표현식 설명
| {{ form.as_p }} | <p> 태그로 각 필드를 감쌈 |
| {{ form.as_table }} | <tr> 태그로 감싸 테이블 형식으로 출력 |
| {{ form.as_ul }} | <li> 태그로 감싸 리스트 형식으로 출력 |
✅ 예시: forms.py
from django import forms
class QuestionForm(forms.Form):
subject = forms.CharField(label='제목', max_length=200)
content = forms.CharField(label='내용', widget=forms.Textarea)
✅ 예시: question_form.html
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">등록하기</button>
</form>
✍️ 직접 필드를 렌더링 하고 싶다면?
as_p 대신 직접 필드별로 출력할 수도 있습니다:
<p>
{{ form.subject.label_tag }}<br>
{{ form.subject }}
{{ form.subject.errors }}
</p>
<p>
{{ form.content.label_tag }}<br>
{{ form.content }}
{{ form.content.errors }}
</p>
이 방법은 커스터마이징이 자유롭고, HTML 구조나 CSS 적용이 더 용이합니다.
반응형
'컴퓨터 활용 > 노년에 즐기는 코딩' 카테고리의 다른 글
| AWS 로그인 방법 2가지 차이 (3) | 2025.07.22 |
|---|---|
| EC2 인스턴스를 다른 계정에서 사용 (4) | 2025.07.20 |
| 부트스트랩(Bootstrap)을 꼭 이용해야 할까요? (3) | 2025.07.18 |
| 스타일시트(CSS)를 이용한 화면 꾸미기 (9) | 2025.07.17 |
| 장고(Django)에서 URL 별칭(name) (2) | 2025.07.16 |
댓글