django - 在视图中获胜之后发布POST

时间:2017-09-14 18:43:43

标签: python django post logging request

我试图写一个会做两件事的视图: 首先,如果request.method是Get,它将显示一个空表单。 然后它应该将表单提交到数据库中,如果方法是POST。

问题是,当提交表单并且它应该POST东西时,相同的视图不会运行,而是运行项目的根URL。 这是日志:

(添加是我为此视图设置的网址)

[14/Sep/2017 18:27:07] "GET /add HTTP/1.1" 200 1815
[14/Sep/2017 18:27:12] "POST / HTTP/1.1" 200 1683

(添加是我为此视图设置的网址)

,代码如下:

def add_link(request):
    if request.method == 'POST':
        form = Form(request.POST)
        ...

    else:
        form = Form()
    return render(request, 'mytemp.html', {'form': form })

以及表格在模板中的外观:

    <form action="." method="post">
        {{ form.as_p }}
        {% csrf_token %}
        <p><input type="submit" value="Add Link"></p>
    </form>

1 个答案:

答案 0 :(得分:0)

操作设置不正确:

<form action="." method="post">

要么完全离开:

<form method="post">

或使用{% url ... %}让它指向您当前的视图。

<form action="{% url 'yourviewsname' %}" method="post">

请发布您的urls.py以获取更详细的答案。