3-05 로그인·로그아웃 구현하기 form.errors 질문

로그인·로그아웃 구현하기 [4] form_errors.html 만들어 작성하기 부분에 궁금한 점이 있어서 질문드립니다.

두 부분의 form_errors 부분의 코드가 조금 다른 점이 신경쓰입니다.
로그인·로그아웃 구현하기에서의 form_errors.html 코드의 필드오류의 출력과 질문등록 기능 필드오류의 출력부분이 아래와 같이 예상되는데요.
출력하는 모습만 다를 뿐, 로그인·로그아웃에서도 질문 등록 기능에서 쓴 코드처럼 작성해도 되는건가요?
그리고 로그인·로그아웃 form_errors.html 에서는 {% if field.errors %}, {% if form.non_field_errors %} 조건문은 필요 없나요?

아래의 for문처럼 작동하는건지요?
그럼 if문은 필요있는건지 그부분도 신경쓰입니다.

a = []

for i in a:
    print(i)  #에러메시지 없이 아무것도 출력안하고 프로그램 종료. for문은 a안이 비어있어도 에러메시지를 안내는 것인가?

<로그인·로그아웃의 에러 발생시의 필드에러 출력 예상 모습>
유저네임
에러
유저네임
에러
패스워드
에러
패스워드
에러

<질문 등록 기능 에러 발생시의 필드에러 출력 예상 모습>
제목
에러
에러

내용
에러
에러

[4] form_errors.html 만들어 작성하기의 forms.errors.html 코드

    {% for field in form %}
        {% for error in field.errors %} <!-- 필드 오류를 출력한다. -->
            <div class="alert alert-danger">
                <strong>{{ field.label }}</strong>
                {{error}}
            </div>
        {% endfor %}
            {% for error in form.non_field_errors %} <!--넌필드 오류를 출력한다. -->
        <div class="alert alert-danger">
            <strong>{{error}}</strong>
        </div>
    {% endfor %}

2-10 질문 등록 기능 만들기 [11] 수작업으로 폼 작성하기 코드

     <!-- 오류표시 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 -->

HJ 33

M 2021년 7월 16일 11:57 오후

목록으로
1개의 답변이 있습니다. 1 / 1 Page

두 개의 코드의 역할은 동일합니다.

다만, 필드 오류를 출력할 때 <div>~</div> 문단이 여러개가 출력되고, 한 개만 출력되는 차이가 있긴 합니다.
책에도 한 개로 통일하여 혼란을 줄이도록 하겠습니다.

피드백 감사합니다.

박응용

2021년 7월 17일 10:30 오전