Я так запутался в проблеме, которая у меня есть, я хочу, чтобы кто-то мог указать на мою ошибку.
У меня есть метод в views.py, который привязан к шаблону, который имеет в нем форму. Код выглядит следующим образом:
def template_conf(request, temp_id):
template = ScanTemplate.objects.get(id=int(temp_id))
if request.method == 'GET':
logging.debug('in get method of arachni.template_conf')
temp_form = ScanTemplateForm(instance=template))
return render_response(request, 'arachni/web_scan_template_config.html',
{
'template': template,
'form': temp_form,
})
elif request.method == 'POST':
logging.debug('In post method')
form = ScanTemplateForm(request.POST or None, instance=template)
if form.is_valid():
logging.debug('form is valid')
form.save()
return HttpResponseRedirect('/web_template_conf/%s/' %temp_id)
Поведение этой страницы таково: когда я нажимаю кнопку "отправить", программа входит в ветвь POST
и успешно выполняет все в ветке. Затем HttpResponseRedirect
перенаправляется только на текущую страницу (этот url является текущим url, я думаю, должен быть равен .
). После этого ветвь GET
получилась выполненной, так как я перенаправляюсь на текущую страницу, и страница успешно вернулась. Однако, если я обновляю страницу в это время, браузер возвращает предупреждение о подтверждении:
The page that you're looking for used information that you entered.
Returning to that page might cause any action you took to be repeated.
Do you want to continue?
Если я подтвержу, данные сообщения будут снова отправлены на сервер. Похоже, браузер все еще держит предыдущие данные POST. Я не знаю, почему это происходит, пожалуйста, помогите. Спасибо.