提交时在views.py中查看Django处理表单数据

时间:2018-10-25 12:37:46

标签: python django django-forms

如果名称不存在,我想处理表单数据并查看和更新​​我的mongo数据库,否则,如果存在名称,则更新数据库。 在此之前,我想确定整个主题是否正确..使用一些正则表达式。

但是当我在下面的表单代码中添加名称和主题时,什么都没有发生。 如何查看表单数据并进行正确检查? 我应该在哪里在views或form.html中进行输入验证?

如果输入的数据格式不正确,将引发错误?我该怎么办?

form_template.html

<div class="container">
<div class="col-md-5">
    <div class="form-area">
        <form id="add-form" method="POST" action="{% url 'myapp:add_data' %}" role="form">
        <br style="clear:both">
                    <h4 style="margin-bottom: 25px; text-align: center;"> New Data</h3>
                                <div class="form-group">
                                                <input type="text" class="form-control" id="name" name="name" placeholder="Name" required>
                                        </div>
                                        <div class="form-group">
                                                <input type="text" class="form-control" id="sub_list" name="sub_list" placeholder="Sub List comma separated" required>
                                        </div>
                                         <button type="button" id="submit" name="submit" class="btn btn-primary pull-right">Submit Form</button>
        </form>
    </div>
    </div>
</div>
</div>

myapp / url.py

url(r'^new_data$', views.add_data, name='add_data'),

下面是我的视图功能

def add_data(request):
    print "Herfe"
    if request.POST:
        print "coming here"
        I want validate user entered input is proper
        messages.success(request, 'Form submission successful')
        return render(request, '/index.html')

1 个答案:

答案 0 :(得分:0)

您可以使用request.POST.get(<name>)从模板中获取数据,然后对其进行预处理。

因此您的情况就变成了

def add_data(request):
    print "Herfe"
    if request.POST:
        print "coming here"
        data = request.POST.get('name')
        # now validate to your heart's content
        messages.success(request, 'Form submission successful')
        return render(request, '/index.html')

在旁注中,我想您会失去django中forms的好处。如果正确使用forms API,则可以轻松地传递值并使用内置方法对其进行验证。在这种情况下,它将变成

form = YourForm(request.POST)
if form.is_valid():
    form.save()
    your_variable = form.cleaned_data['name'] # validates for malicious data automatically
    # Now you can do further validations accordingly.