как правильно отобразить сообщение form.errors в django - PullRequest
0 голосов
/ 17 мая 2019

здесь с этим кодом ошибки формы не отображаются должным образом. Во всех сообщениях об ошибках указано, что это поле обязательно только для заполнения. Как я могу определить свое пользовательское сообщение form.error в шаблоне.

шаблон

 {% if form.errors %}
    {% for field in form %}
        {% for error in field.errors %}
            <p> {{ error }} </p>
        {% endfor %}
    {% endfor %}
{% endif %}
      <div class="form-group">
                        <h5>Full Name <span class="text-danger">*</span></h5>
                        <div class="controls">
                            <input type="text" name="name" class="form-control" title="Full Name is required" > </div>
                    </div>
                    <div class="form-group">
                        <h5>Courses<span class="text-danger">*</span></h5>
                           <div class="controls">
                     {% for course in courses %}
                     <input name ="courses" type="checkbox" id="course-{{course.id}}" value="{{course.id}}" autofocus  title="Please Check at least one course">
                     <label for="course-{{course.id}}">{{course.title}}</label>
                     {% endfor %}
                   </div>
                    </div>

views.py

if request.method == 'POST':
        form = AddStudentForm(request.POST, request.FILES)
        if form.is_valid():
            student = form.save(commit=True)

            student.save()

            messages.success(request, 'student with name  {}  added.'.format(student.name))
            return redirect('admin:add_student')

    else:
        form = AddStudentForm()
    return render(request, 'admin/add_student.html', {'form': form}) 

1 Ответ

1 голос
/ 17 мая 2019

в вашем views.py передать форму с ошибками, как это

if request.method == 'POST':
    form = AddStudentForm(request.POST, request.FILES)
    if form.is_valid():
        student = form.save(commit=True)

        student.save()

        messages.success(request, 'student with name  {}  added.'.format(student.name))
        return redirect('admin:add_student')

    return render(request, 'admin/add_student.html', {'form': form}) 
else:
    form = AddStudentForm()
    return render(request, 'admin/add_student.html', {'form': form})

Это означает, что вы должны удалить остальную часть и в вашем шаблоне код

{% if form.errors %}
    <div class="alert alert-danger">
        {{ form.errors }}
    </div>
{% endif %}

Обновлен ответ , чтобы получить правильный ответ при первой загрузке представления

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...