Форма Джанго требует повторной подачи - PullRequest
1 голос
/ 09 октября 2019

У меня есть простая форма в Django, и в моем шаблоне я хочу отобразить каждый отдельный объект для всего набора запросов, в который я сохраняю форму. Ошибка, которую я получаю, заключается в том, что моя форма не отправляется с первой попытки. Только когда я нажимаю кнопку отправки, вручную обновляю страницу и затем «подтверждаю повторную отправку формы», я вижу мои обновленные объекты набора запросов, отображаемые в шаблоне.

Я сохраняю свою форму следующим образом:

 exercise_name = ExerciseName.objects.all()

 if request.method == 'POST':
      form = ExerciseNameForm(request.POST)
      if form.is_valid():
         form.save(commit=True)
      else:
         form = ExerciseNameForm()

и передаю набор запросов в шаблон через следующий контекст:

{ 'exercise_name': exercise_name }

и выполняю итерацииэто похоже на

{% for exercise_title in exercise_name %}
  #content displaying each iteration 
{% endfor %}

с моей формой для обновления, например:

<div>
    <form method = "POST">{% csrf_token %}
        {{form.as_p}}
        <button type="submit" class="save btn btn-default">Save</button>
    </form>
</div>

Я не уверен, почему он заставляет меня обновить страницу и повторно отправить форму снова, чтобы увидетьобновлен набор запросов после отправки формы?

1 Ответ

1 голос
/ 09 октября 2019

Вы должны делать что-то вроде этого:

if request.method == 'POST':
    form = ExerciseNameForm(request.POST)
    if form.is_valid():
        form.save(commit=True)
        return HttpResponse("data submitted successfully") 
    else:
        return render(request, "your_template.html", {'form':form})
else: 
    form = ExerciseNameForm()
    return render(request, "your_template.html", {'form':form})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...