В моем шаблоне у меня есть javascript, который отправляет вызов GET методу Django. В этом методе я хотел бы вернуть пустую форму обратно в шаблон. Вот мой JavaScript:В Django, как вернуть форму обратно в функцию Javascript?
require(["dojo/request/xhr", "dojo/domReady!"],
function(xhr, ready){
var url = window.location.pathname + "dev/" + report_id + "/" + report_url + "/";
xhr(url, {
method: "get"
}).then(
function(response){
var json_response = JSON.parse(response);
//do stuff
}
);
});
Вот что происходит с моей точки зрения Django:
def my_view(request):
if request.method == "GET":
form = MyForm()
data = json.dumps({
'form': form,
})
return HttpResponse(data, mimetype="application/json")
else:
#do other stuff
Вот ошибка, я получаю сейчас:
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <development.dev_forms.MyForm object at 0x7f3a8dd07e50> is not JSON serializable
Так что, похоже, я не могу сериализуйте форму Django. Поэтому я хотел бы как-то вернуть поля этой формы в шаблон. Какие еще способы это сделать? Есть ли способ получить HTML всех полей? Тогда я мог бы сам создать словарь. Любые другие предложения? Благодаря!
Это не возвращает ничего на мой Javascript. У меня есть страница с кучей ссылок. В зависимости от того, какая ссылка я нажимаю, нужно визуализировать другую форму. Я пытаюсь использовать JS для извлечения этой формы. –
Я не знаю, как использовать ajax, но, вероятно, вам нужно немного изменить его, чтобы заставить его работать. Я знаю, что мой метод работает с этим: http://api.jquery.com/load/ – marianobianchi
Извините @ Di-Zou. Я допустил ошибку и написал POST как метод формы, но должен быть GET. Посмотрите, работает ли это сейчас. Просто измените метод формы – marianobianchi