誤差

2010-01-13 74 views
0

所有返回Django的形式,內容,誤差

我有一個模板頁說x.html

我有3個文本在IT領域的域名(VARCHAR2),年齡(INT),學校(VARCHAR2)。

如果用戶輸入在x.html形式(比如值名稱=「一」,年齡=「2」,學校=「A」)的值,並提交它。我需要回到返回相同的值指示錯誤的x.html。

我的問題是如何返回相同的值x.html。

感謝.....

回答

2

docs

在一個視圖處理的形式標準模式如下:

def contact(request): 
    if request.method == 'POST': # If the form has been submitted... 
     form = ContactForm(request.POST) # A form bound to the POST data 
     if form.is_valid(): # All validation rules pass 
      # Process the data in form.cleaned_data 
      # ... 
      return HttpResponseRedirect('/thanks/') # Redirect after POST 
    else: 
     form = ContactForm() # An unbound form 

    return render_to_response('contact.html', { 
     'form': form, 
    }) 
+0

謝謝........................... – Hulk 2010-01-13 19:25:58

0

如果您正在使用Django的形式,它會做驗證本身,然後返回你需要的值。 Here您可以閱讀關於使用表單以及它們如何驗證值的信息。基本上,當你通過一些值形式,它不是有效的,你只要再次渲染網站,但Django會自動地填寫領域。不要打擾寫你自己的形式,除非你真的,真的需要他們。而在你的例子中,你真的不知道;-)

+0

謝謝................. ................... – Hulk 2010-01-13 19:28:26

0

我不知道你是如何處理你的表單信息。但是,如果您使用Django中內置的表單API,它會爲您處理大部分此類問題。有關詳細信息,請查看Django Docs for Forms http://docs.djangoproject.com/en/dev/topics/forms/#topics-forms-index

如果您使用表單API並且提交無效,那麼Django會爲該模板提供表單的綁定副本,並且已經包含用戶提供的數據。同樣,您必須閱讀API的詳細信息以瞭解如何在您的情況下實施它。

+0

感謝........................... – Hulk 2010-01-13 19:27:55

2

只要您將表單對象提供給呈現的模板,Django就會將提交的值寫回。例如,在你看來,是這樣的:

# handle POST 
form = MyForm(request.POST) 
if form.is_valid(): 
    # do something and redirect 
else: 
    # render the template with the invalid form 
    return render_to_response('mytemplate.html', {'form': form}) 

,並在您的模板,是這樣的:

{{ form.myfield.label_tag }} 
{% if form.myfield.errors %} indicate error message/icon here {% endif %} 
{{ form.myfield }} 

注意{{ form.myfield }}將展示基礎上,爲myfield與先前提交的值的HTML控件查看上面的代碼。這將是空白的,當你在響應GET(例如form = MyForm())與空白表單呈現它。

+0

謝謝...................................... – Hulk 2010-01-22 06:20:22

+0

不客氣。 :) – ars 2010-01-22 06:54:10