如何通过Jquery Ajax调用返回Django ModelForm?

时间:2013-08-14 05:46:40

标签: django django-forms django-templates django-views

最初我在模板结尾加载一个带有实例的模型。但我必须使用ajax在某些操作上更改实例,然后在模板结束时刷新表单。请建议我有没有办法做到这一点?

1 个答案:

答案 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,
    })