Добавление условного контекста в функцию для работы в шаблоне Django

#python-3.x #django #django-views #django-templates #django-context

Вопрос:

У меня есть форма Django, и я пытаюсь показать текст только после успешного заполнения формы

Я добавил контекст, чтобы при успешном выполнении формы successful_submit значение было истинным, и в шаблоне я добавляю условие, чтобы показывать текст только после его успешного выполнения, но каждый раз, когда я обновляю страницу или открываю, она отображается даже без отправки формы, как будто нет оператора if

итак, вот что я сделал в своих взглядах:

 def add__plan(request):
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = infoForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            form.save()
            _name = form.cleaned_data.get('Name')
            messages.success(request, f'PDF created for {_name}!')
            # return redirect('plan:plan')
            # redirect(reverse('plan:plan', kwargs={'successful_submit': True}))
            return render(request, 'plan/plan.html', {'successful_submit': True})

    # if a GET (or any other method) we'll create a blank form
    else:
        form = infoForm()
        print(form.errors)
    return render(request, 'plan/plan.html', {'form': form, 'successful_submit': True })
 

вот текстовый шаблон:

               {% if successful_submit %}
              <!--Grid column-->
              <div class="col-md-3 mb-4">
                <div
                  class="toast fade show"
                  role="alert"
                  aria-live="assertive"
                  aria-atomic="true"
                >
                  <div class="toast-header">
                    <strong class="me-auto">MDBootstrap</strong>
                    <small>11 mins ago</small>
                    <button
                      type="button"
                      class="btn-close"
                      data-mdb-dismiss="toast"
                      aria-label="Close"
                    ></button>
                  </div>
                  <div class="toast-body">
                    Hello, world! This is a toast message.
                  </div>
                </div>
              </div>
              <!--Grid column-->
              {% endif %}
 

Комментарии:

1. successful_submit’: False.поместите это там, где вы отрисовали шаблон после else(в методе get запроса) . Если вы поставите True, то это будет выглядеть как Истина )))).

2. add__plan(request) последняя строка: return render(request, 'plan/plan.html', {'form': form, 'successful_submit': True }) . ОБНОВИТЕ его до: return render(request, 'plan/plan.html', {'form': form, 'successful_submit': False }) .