2013-11-24 71 views
0

我在django框架中很新。我有一個模板,我有一個窗體。簡單地說,我只是想對這個窗體進行驗證,它將檢查字段是否爲空或不是。如果它是空的,那麼它將顯示類似「所需字段保持空白」的驗證聲明。現在如何進行驗證?這裏是我的form.py文件django中的窗體驗證

from django import forms 
from django.core.exceptions import ValidationError 
from request.models import Request 

class SubreqForm(forms.Form): 
    request = forms.CharField(max_length=100) 
    category = forms.CharField(max_length=100) 
    sub_category = forms.CharField(max_length=100) 

,這是我的看法(你可以編輯視圖)

class SubmitRequestsTemplateView(TemplateView): 
template_name = "rest/submit_req.html" 
def get(self,request,*args,**kwargs): 
    c = {} 
    c.update(csrf(request)) 

    return render_to_response("rest/submit_req.html", context_instance=RequestContext(request)) 

,這是我的模板......(只有形式)

    <div class="form-group"> 
         <label class="col-lg-3 control-label" for="inputText">Request</label> 
         <div class="col-lg-8"> 
          <input id="inputText" class="form-control" type="Text" placeholder="Request Name" ng-model="request.name"></input> 
         </div> 
        <br /> 
        <br /> 
        </div> 
        <div class="form-group"> 
         <label for="id_category" class="col-lg-3 control-label">Category</label> 
         <div class="col-lg-8"> 
          <select class="form-control" id="id_category" ng-model="selectedCategory" ng-options="cat.pk as cat.name for cat in category"> 
           <option value="">Select Category</option> 
          </select> 
         </div> 
        </div> 

        <div class="form-group"> 
         <label for="id_subcategory" class="col-lg-3 control-label">Sub-Category</label> 
         <div class="col-lg-8"> 
          <select class="form-control" id="id_subcategory" ng-model="selectedSubCategory" ng-options="subcat.id as subcat.name for subcat in subcategory"> 
          <option value="">Select SubCategory</option> 
          </select> 

         </div> 
        </div> 
        <div> 
         <center> 
          <button type="submit" class="btn btn-primary" ng-click="addRequest()">Add Request</button> 
         </center> 
        </div> 
       </form> 

現在我該如何驗證我的表單?請幫幫我。

+1

https://docs.djangoproject.com/en/dev/ref/forms/validation/ – ndpu

+0

如果你想驗證字段爲空/非空,那麼只需添加或刪除required = True即可形成字段。 –

回答

0

您的視圖未配置爲進行任何形式的表單處理。正如你有它編碼,TemplateView將只回應GET請求,所以當你的表格發送POST什麼都不會發生。

看看通用的CreateViewdocumentation。此外,如果您要手動呈現表單而不是讓Django執行它(form.as_p),那麼您還需要manually render any errors,這在上面的模板中沒有看到。