簡體   English   中英

提交按鈕在 Django 中不起作用

[英]submit button not working in django

在我的 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>

提交時,頁面只是重新加載,沒有任何反應,既不提交表單,也不顯示錯誤。

網址.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頁面。

如果您完全控制 HTML 渲染,那么您應該自己輸出錯誤

{{ form.name.errors }}

使用此模板,您將能夠在 Django 表單中使用 Twitter Bootstrap

<form class="form-horizontal" action="" method="POST" {% if form.is_multipart %}enctype="multipart/form-data"{% endif %}>
{% csrf_token %}
{{ form.media }}
{% if form.errors %}
    <div class="alert alert-error">
        <ul>
            {% for error in form.non_field_errors %}
                <li>{{ error }}</li>
            {% endfor %}
        </ul>
    </div>
{% endif %}
{% for field in form.visible_fields %}
    <div class="control-group {{ field.html_name }} {% if field.errors %}error{% endif %}">
        <label class="control-label">{{ field.label }}{% if field.field.required %} *{% endif %}</label>
        <div class="controls">
            {{ field }}
            {% if field.errors %}<span class="help-inline">{{ field.errors.as_text }}</span>{% endif %}
        </div>
    </div>
{% endfor %}
{% for field in form.hidden_fields %}
    {{ field }}
{% endfor %}

{% block formsets %}
    {% for formset in inlines %}
        {% include "inline_formset.html" with formset=formset %}
    {% endfor %}        
{% endblock formsets %}

<div class="form-actions">
    <input class="btn btn-primary btn-large" type="submit" value="Submit"/>
    {% block extra_buttons %}
    {% endblock extra_buttons %}
</div>

首先嘗試為您的表單包含一個操作。

您是否嘗試過action="." ? 我認為這將適用於您的情況。

有可能您沒有在表單上添加需要的字段,因此無法提交

所以基本上,我遇到了同樣的問題, div 中的type="submit"似乎是問題所在。 您可以使用具有相同屬性的input標簽來解決它,至於名稱您可以使用input標簽的value屬性。 如果您想知道為什么輸入標簽有效而 div 標簽無效,請查看下面的鏈接

[https://docs.djangoproject.com/en/3.2/topics/forms/][1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM