Django POST dict为空,使用简单的html表单

时间:2017-05-02 18:59:51

标签: python django http

我使用的是Django 1.8和Python 3.5.2,并尝试从简单的html格式中恢复POST数据

<form action="/shop/order" method="POST">
        {% csrf_token %}
        <input type="hidden" name="product-code" value="{{ product.product_code }}">
        <input type="text" name="email">
        <input type="submit">
</form>

它查看我尝试获取数据的位置,但QueryDict为POST为空,当我在表单中将POST更改为GET并查看所有工作时。

def order_product(request):
    test = request.POST.get('product-code', '')
    mail = request.POST.get('email', '')
    # logger.info(test)
    return render(request, 'shop/test.html', dict(test=test, email=mail))

我不明白为什么会这样。类似地,我尝试解析(解码二进制到utf-8等)的身体,我收回空字符串。

urls.py

url(r'^order/?$', views.order_product),

1 个答案:

答案 0 :(得分:1)

谢谢大家,这个寓言的寓意如下,在网址中使用名称参数,并在模板中使用{%url'name'%}。我在url(来自djangoCMS)中有i18n,当我在表单中对url进行harcode时,对于POST方法不起作用。