当通过请求模块提交时,Django为form.is_valid()返回false

时间:2016-09-16 10:03:41

标签: python django forms django-forms request

我在Django Application中有一个表单,我试图通过python请求模块提交。

每当我尝试通过请求模块提交表单时,它都表示该表单无效。  form.is_valid()在django代码中返回false。

但是,如果我使用浏览器手动提交相同的表单,则表示已成功提交。

我使用以下代码提交表单

session = requests.session()
session.get("http://localhost:8000/autoflex/addresult/")
csrf_token = session.cookies["csrftoken"]

data = {"xml_url": xml_url, "csrfmiddlewaretoken": csrf_token}
result = session.post("http://localhost:8000/autoflex/addresult/", data=data, headers={"Referer": "http://localhost:8000/autoflex/addresult/"})

**以下是forms.py **

的代码
from django import forms

class SubmitForm(forms.Form):
    xml_url = forms.CharField()

关注模板代码。我正在使用脆纸。

<!-- language: Python -->
<form method='POST' action=''>
    {% csrf_token %}
    {{ form | crispy}}
    </br>
    <input class='btn btn-primary' type='submit' value='Submit'/>
</form>

以下是视图中的代码。

def add_result(request):
form = SubmitForm(request.POST or None)
context = dict(form=form, message="")

is_duplicate = False

if form.is_valid():
    #Original code is replaced with print statement
    print "form is valid"


return render(request, "add_result.html", context)

0 个答案:

没有答案