改進Django中的表單的簡單方法

2022-10-04 22:18:53 字數 2037 閱讀 4385

首先,search()檢視對於空字串的處理相當薄弱——僅顯示一條」please submit a search term.」的提示資訊。 若使用者要重新填寫表單必須自行點選「後退」按鈕, 這種做法既糟糕又不專業。如果在現實的案例中,我們這樣子編寫,那麼django的優勢將蕩然無存。

在檢測到空字串時更好的解決方法是重新顯示表單,並在表單上面給出錯誤提示以便使用者立刻重新填寫。 最簡單的實現方法既是新增else分句重新顯示表單,**如下:

(注意,將search_form()檢視也包含進來以便檢視)

這段**裡,我們改進來search()檢視:在字串為空時重新顯示search_form.html。 並且給這個模板傳遞了乙個變數error,記錄著錯誤提示資訊。 現在我們編輯一下search_form.html,檢測變數error:

search

****

**please submit a search term.

** ****

我們修改了search_form()檢視所使用的模板,因為search_form()檢視沒有傳遞error變數,所以在條用search_form檢視時不會顯示錯誤資訊。

通過上面的一些修改,現在程式變的好多了,但是現在出現乙個問題: 是否有必要專門編寫search_form()來顯示表單? 按實際情況來說,當乙個請求傳送至/search/(未包含get的資料)後將會顯示乙個空的表單(帶有錯誤資訊)。 所以,只要我們改變search()檢視:當使用者訪問/search/並未提交任何資料時就隱藏錯誤資訊,這樣就移去search_form()檢視以及對應的urlpattern。

def search(request):

error = false

if 'q' in request.get:

q = request.get['q']

if not q:

error = true

else:

books = bo程式設計客棧ok.objects.filter(title__icontains=q)

return render_to_response('search_results.html',

)return render_to_response('search_form.html',

)在改進後的檢視中,若使用者訪問/search/並且沒有帶有get資料,那麼他將看到乙個沒有錯誤資訊的表單; 如果使用者提交了乙個空表單,那麼它將看到錯誤提示資訊,還有表單; 最後,若使用者提交了乙個非空的值,那麼他將看到搜尋結果。

最後,我們再稍微改進一下這個表單,去掉冗餘的部分。 既然已經將兩個檢視與urls合併起來,/search/檢視管理著表單的顯示以及結果的顯示,那麼在search_form.www.cppcns.comhtml裡表單的action值就沒有必要硬編碼的指定url。 原先的**是這樣:

現在改成這樣:

action=」「意味著表單將提交給與當前頁面相同的url。 這樣修改之後,如果search()檢視不指向其它頁面的話,你將不必再修改action。

本文標題: 改進django中的表單的簡單方法

本文位址:

Django表單的簡單應用

views.py中的 10 表單物件的繫結 11 form userform req.post 12 資料的驗證 13if form.is valid 14 資料的獲取 生成物件 19 form userform 20return render to response index.html inde...

django表單處理(一) 最簡單的表單

是時候講 django 的表單處理了。最簡單的表單處理就是從輸入框中提取字串,交給後台進行資料處理並返回相應結果。本著簡單入門的原則,今天設計的表單就只有乙個文字框和乙個按鈕。在 templates 目錄下新建乙個 test01.html 檔案 接下來在 views.py 中新增下面的 from d...

Django中 form表單的使用

from django import forms 第一步 首先在models.py中定義乙個表單模型 class remarkform forms.form subject forms.charfield max length 100 label mail forms.emailfield labe...