python - 提交按钮在 django 中不起作用

标签 python django forms 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>

但是当我这样渲染时:

<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>

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

urls.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)),
    )

views.py: http://pastebin.com/TGzkh7aq

我想使用第二种方法来获得正确的样式。请帮忙。

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

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

NoReverseMatch 在/ 与参数“()”和关键字参数“{}”未找到的“thankyou”相反。尝试了 0 个模式:[]

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

但现在我的表单由于 action 而被提交,即使它是空的也没有显示任何错误。就像指向 thankyou 页面的链接。

最佳答案

如果您完全控制 HTML 呈现,那么您应该 output the errors by yourself :

{{ form.name.errors }}

关于python - 提交按钮在 django 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28394445/

相关文章:

python - 我可以在docker上分发python应用程序吗?

python - 在 Django 中使用 shell

python - Django 时区不知道 DateTimeField 错误

asp.net - Html.BeginForm 在提交时丢失了routeValues

python - Django 错误(属性): 'CharField' object has no attribute 'is_related'

javascript - JQuery 提交隐藏表单

python - Random.randint 在 Python 中不生成随机数

mysql - 保存/更新模型时 Django "Lock wait timeout exceeded; try restarting transaction"

django - 字符串或 unicode 输入无法识别为 WKT EWKT 和 HEXEWKB

python - 找不到我的 MongoDB 存储文件的位置