最初我在模板结尾加载一个带有实例的模型。但我必须使用ajax在某些操作上更改实例,然后在模板结束时刷新表单。请建议我有没有办法做到这一点?
答案 0 :(得分:1)
通常,服务器视图使用 ModelForm
来呈现表示 {的实例的HTML代码段{1}} (即Model
或类似的)然后放在一个代表整个HTML文档并最终发送到客户端的较大模板中。
您需要创建第二个视图,该视图将呈现并仅返回表示表单的HTML片段。然后,您可以从原始模板创建对新视图的ajax调用,该调用将返回表单HTML。您可以通过jQuery替换现有表单。
视图:
{{ myform.as_p }}
模板:
def my_second_form(request):
if request.method == "POST":
form = MyForm(request.POST)
if form.is_valid():
...
else:
form = MyForm()
return render(request, 'my_second_form.html', {
'form': form,
})