1

最初我在模板端加载一个带有实例的模型表单。但是我必须使用 ajax 在某些操作上更改实例,然后在模板端刷新表单。请建议我有什么办法吗?

4

1 回答 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 回答