У меня есть промежуточное ПО, подобное этому:
class PostModelFormMiddleware(object):
def process_request(self, request):
form = PostModelForm()
request.post_form = form
Эта форма имеет поле для ввода капчи. То, что я хочу сделать в моем шаблоне - это каждый раз, когда кто-то нажимает. Отправьте обновленный вопрос с помощью Javascript на новый. Как мне получить это request.post_form
и его данные в jQuery?
Спасибо!
РЕДАКТИРОВАТЬ: больше кода.
HTML:
<form id="add_post">
...
<input type="hidden" name="math_captcha_question" value="fbc9fcdffbf2b2723ab36e9f341372214daf1be936202d2035">
6 - 5 =
...
</form>
Я хотел бы изменить значение «math_captch_question», а также отображаемый текст. Оба они изначально отображаются с использованием тега шаблона {{request.post_form.math_captcha_question}}
JQuery:
$("form#add_post").submit(function() {
//Validations and stuff
var data = {category:category, body:body, nickname:nickname, math_captcha_question:math_captcha_question, math_captcha_field:math_captcha_field};
var args = {type:"POST", url:"add_post/", data:data, complete:function(res, status) {
//Process response
//This is where I would like to set new values for math_captcha_question
} };
$.ajax(args);
}
return false;
})
/ add_post / view:
def add_post(request):
if request.method == 'POST':
if form.is_valid():
#do stuff
return HttpResponse("success")
else:
return HttpResponseServerError("fail")