{% extends 'base.html' %}
{% block content %}
<div>
<h5>질문 등록</h5>
<form method="POST">
{% csrf_token %}
{% if form.errors %}
<div class="alert alert-danger" role="alert">
{% for field in form %}
{% if field.errors %}
<strong>{{ field.label }}</strong>
{{ field.errors }}
{% endif %}
{% endfor %}
</div>
{% endif %}
<div class="form-group">
<label for="subject">제목</label>
<input type="text" class="form-control" name="subject" id="subject" value="{{ form.subject.value|default_if_none:'' }}">
</div>
<div class="form-group">
<label for="content">내용</label>
<textarea class="form-control" name="content" id="content" rows="10">{{ form.content.value|default_if_none:'' }}</textarea>
</div>
<button>저장하기</button>
</form>
</div>
{% endblock %}
{{ form.as_p }}
에 의해 자동 생성되는 HTML 대신 제목과 내용을 위한 HTML을 직접 작성하였다.
- question_create 함수에서
a_form.is_valid()
가 실패했을 때 오류를 표시하기 위해 오류 표시 영역을 추가하였다.
{{ form.subject.value|default_if_none:'' }}
: 오류 발생 시 기존 입력값을 유지하기 위한 코드이다. |default_if_none:''
는 form.subject.value
에 값이 없으면 'None'이라는 문자열이 표시되는데, 이를 공백으로 표시하기 위한 템플릿 필터이다.