2011-04-06 112 views
0

我希望我的形式與這種行爲多視圖顯示:Django的形式

1)顯示在用戶提交表單視圖表單錯誤。

2.)如果表單有效,則將用戶發送回他們提交表單的視圖。

我該如何做到這一點?

回答

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))