django | 15. 오류 영역 추가하기

sojung·2021년 6월 29일
0

django

목록 보기
16/21
post-thumbnail
<!-- question_form.html -->

{% extends 'base.html' %}
{% block content %}

<div>
  <h5>질문 등록</h5>
  <form method="POST">
    {% csrf_token %}

    <!-- 오류표시 Start -->
    {% 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 %}
    <!-- 오류표시 End -->

    <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>
    
    <!-- {{ form.as_p }} -->
    <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'이라는 문자열이 표시되는데, 이를 공백으로 표시하기 위한 템플릿 필터이다.
profile
걸음마코더

0개의 댓글