django形式在多个视图中

时间:2011-04-06 14:22:28

标签: django-forms django-views

我希望我的表单在多个视图中显示此行为:

1。)表格错误显示在用户提交表格的视图中。

2。)如果表格有效,请将用户返回到他们提交表格的视图。

我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,我很确定第一个行为是默认的。对于第二个,如果在保存和验证后没有重定向,它应该只重新渲染您提交的视图。放置成功变量可能很好,可以查看表单是否已保存。以下是在多个视图中使用单个表单的示例。

<强> models.py:

class MyModel(models.Model):
    name = models.CharField()

<强> forms.py:

class MyModelForm(forms.ModelForm):
    class Meta:
        model = MyModel

<强> views.py:

def first_view(request):
    success = False
    if request.method=="POST":
        form = MyModelForm(request.POST)
        if form.is_valid():
            form.save()
            success = True
    else:
        form = MyModelForm()

    context = { 'form':form,
                'success': success, }

    return render_to_response('first_view_template.html', context,
            context_instance=RequestContext(request))

def second_view(request):
    success = False
    if request.method=="POST":
        form = MyModelForm(request.POST)
        if form.is_valid():
            form.save()
            success = True
    else:
        form = MyModelForm()

    context = { 'form':form,
                'success': success, }

    return render_to_response('second_view_template.html', context,
            context_instance=RequestContext(request))

答案 1 :(得分:0)

您是否尝试过Django Form preview,如果我没有错,可以将它用于您的目的