我在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)