【发布时间】:2015-04-08 06:54:37
【问题描述】:
在我的 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 at /
Reverse for 'thankyou' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
更新:我在 urls.py 中缺少逗号,这是导致上述错误的原因。我已经更新了代码。
但是现在我的表单因为action 而被提交,即使它是空的也没有显示任何错误。就像指向thankyou 页面的链接一样。
【问题讨论】:
-
您可以发布您的
urls.py文件吗?最终,您的表单中缺少action,它在您提交后处理重定向,但是一旦您按下提交按钮就知道您希望表单在哪里结束,这将有助于我形成一个更完整的解决方案。 -
@SuperGroy 我已经更新了问题。
-
@vicodin 您的数据可能有错误,但您看不到它们。查看我对文档链接的回答。
-
尝试在 urls.py from query_form.views importthankyou 然后 url(r'^thankyou/$',thankyou, name="thankyou"),如果这会在导入时产生错误,那么您的路径错误。
-
@mtnpaul 阅读您的评论后,我意识到了错误并更新了问题。
标签: python django forms django-forms