私のテンプレートには、GET 呼び出しを Django メソッドに送信する JavaScript があります。このメソッドでは、空白のフォームをテンプレートに戻したいと思います。これが私の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 を取得する方法はありますか? それから私は自分で辞書を作ることができました。他の提案はありますか?ありがとう!