在Django中验证表格

时间:2013-11-24 09:55:42

标签: django forms validation

我是django框架中的新手。我有一个模板,我有一个表单。我只想在这个表单上进行验证,它将检查字段是否为空是否为空。如果它是空的然后它将显示类似“必需字段保持为空”之类的验证声明。现在我该如何进行验证?这是我的form.py文件

 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 个答案:

答案 0 :(得分:0)

您的视图未针对任何类型的表单处理进行配置。如果您对其进行了编码,TemplateView只会响应GET次请求,因此当您的表单发送POST时,不会发生任何事情。

查看通用CreateView documentation

此外,如果您要手动渲染表单而不是让Django执行此操作(form.as_p),那么您还需要manually render any errors我在上面的模板中看不到的内容。