在我的模板中,我有向 Django 方法发送 GET 调用的 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?然后我可以自己制作一本字典。还有其他建议吗?谢谢!