最初我在模板端加载一个带有实例的模型表单。但是我必须使用 ajax 在某些操作上更改实例,然后在模板端刷新表单。请建议我有什么办法吗?
问问题
142 次
1 回答
1
通常,服务器视图使用 aModelForm
来呈现表示a实例Model
(即或类似)的 HTML 片段{{ myform.as_p }}
,然后将其放置在表示整个 HTML 文档的更大模板中,最后发送到客户端。
您需要创建第二个视图,该视图将仅呈现和返回表示表单的 HTML 片段。然后,您可以从原始模板创建对新视图的 ajax 调用,这将返回表单 HTML。你可以通过 jQuery 用这个替换你现有的表单。
看法:
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,
})
模板:
<form action="/url/to/my_second_form/" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
于 2013-08-14T06:12:41.950 回答