提交按钮在 django 中不起作用

vic*_*din 5 python forms django django-forms

在我的 django 模板中,当我一次渲染整个表单时,提交按钮起作用并且表单被提交或显示错误(如果有):

<form action="" method="POST" >
                {% csrf_token %}
                    <div class="row">
                        <div class="small-12 large-8 columns">
                            {{ form }}
                            <input type="submit" value="submit">
                        </div>
                    </div>
</form>
Run Code Online (Sandbox Code Playgroud)

但是当我像这样渲染时:

<form action="" method="POST" >
                {% csrf_token %}
                    <div class="row">
                        <div class="small-6 columns">
                            {{ form.name }}
                            <input type="submit" value="submit">
                        </div>
                        <div class="small-6 columns">
                            {{ form.email}}
                        </div>
                    </div>
                    <div class="row">
                        <div class="small-6 columns">
                            {{ form.model_no}}
                        </div>
                        <div class="small-6 columns">
                            {{ form.phone_no}}
                        </div>
                    </div>
                    <div class="row">
                        <div class="small-12 columns">
                            {{ form.problem_details}}
                        </div>
                    </div>
                <div class="row">
                    <div class="small-12 columns">
                        <input type="submit" value="submit">
                    </div>
                </div>
            </form>
Run Code Online (Sandbox Code Playgroud)

提交时,页面只是重新加载,没有任何反应,既没有表单提交,也没有显示错误。

网址.py:

from django.conf.urls import patterns, include, url
from django.contrib import admin

    urlpatterns = patterns('',
        url(r'^$', 'query_form.views.contactview', name="home"),
        url(r'^thankyou/', 'query_form.views.thankyou', name="thankyou"),
        url(r'^admin/', include(admin.site.urls)),
    )
Run Code Online (Sandbox Code Playgroud)

视图.py:http://pastebin.com/TGzkh7aq

我想使用第二种方法来进行正确的样式设置。请帮忙。

我已经得到答案,我应该为表单提供“操作”,但我的问题是为什么第一种方法有效,而第二种方法没有“操作”则不行。

编辑:使用时action="{% url 'thankyou' %}"出现以下错误:

NoReverseMatch at / Reverse for 'thankyou' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []

更新:我在 urls.py 中缺少逗号,这导致了上述错误。我已经更新了代码。

但现在我的表单正在提交,因为action即使它是空的也没有显示任何错误。就像页面的链接一样thankyou

cat*_*ran 1

如果您完全控制 HTML 渲染,那么您应该自己输出错误

{{ form.name.errors }}
Run Code Online (Sandbox Code Playgroud)