#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 })
.