Django 脆皮形式显示一个选项卡下的所有选项卡

问题描述

我一直在从 Python 2 和 Django 1.11 升级 Django 应用程序,当我尝试显示一个表格样式模式时,我发现了一个非常奇怪的问题,其中 1 个选项卡下显示了 4 个四个选项卡。这种形式的加载似乎也使网站加载速度超慢。我已将 django-crispy-forms 库从 1.5.0 升级到 1.10.0。

错误截图如下所示:

screenshot

表单模板: incident_form.html

{% load crispy_forms_tags i18n %}
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
            <h4 class="modal-title" id="incidentForm">{% trans "Submit a new report" %}</h4>
        </div>

        <div class="modal-body">
            <label class="control-label">{% trans "What kind of report is this?" %}</label>
            <!-- Nav Tabs -->
            <ul class="nav nav-tabs" role="tablist">
              <li role="presentation" class="active"><a href="#incidentReport" role="tab" data-toggle="tab">{% trans "Collision or Fall" %}</a></li>
              <li role="presentation"><a href="#nearmissReport" role="tab" data-toggle="tab">{% trans "Near miss" %}</a></li>
              <li role="presentation"><a href="#hazardReport" role="tab" data-toggle="tab">{% trans "Hazard" %}</a></li>
              <li role="presentation"><a href="#theftReport" role="tab" data-toggle="tab">{% trans "Theft" %}</a></li>
              {% if request.user.is_staff %}
              <li role="presentation"><a href="#newInfrastructureReport" role="tab" data-toggle="tab">{% trans "New Infrastructure" %}</a></li>
              {% endif %}
            </ul>

            <!-- Tab panes -->
            <div class="tab-content">
                <div role="tabpanel" class="tab-pane active" id="incidentReport">
                    <form action="{% url 'mapApp:postIncident' %}" method="POST" role="form" enctype="multipart/form-data">
                        {% crispy incidentForm %}
                    </form>
                </div>
                <div role="tabpanel" class="tab-pane" id="nearmissReport">
                    <form action="{% url 'mapApp:postNearmiss' %}" method="POST" role="form" enctype="multipart/form-data">
                        {% crispy nearmissForm %}
                    </form>
                </div>
                <div role="tabpanel" class="tab-pane" id="hazardReport">
                    <form action="{% url 'mapApp:postHazard' %}" method="POST" role="form" enctype="multipart/form-data">
                        {% crispy hazardForm %}
                    </form>
                </div>
                <div role="tabpanel" class="tab-pane" id="theftReport">
                    <form action="{% url 'mapApp:postTheft' %}" method="POST" role="form" enctype="multipart/form-data">
                        {% crispy theftForm %}
                    </form>
                </div>
               {% if request.user.is_staff %}
                <div role="tabpanel" class="tab-pane" id="newInfrastructureReport">
                    <form action="{% url 'mapApp:postNewInfrastructure' %}" method="POST" role="form" enctype="multipart/form-data">
                        {% crispy newInfrastructureForm %}
                    </form>
                </div>
                {% endif %}
            </div>
        </div>

        <div class="modal-footer">
            <div class="col-xs-6">
                <div class="text-left" style="text-indent: -16px; padding-left: 15px;">
                    {% url "mapApp:termsAndConditions" as terms_url %}
                    <input type='checkBox' id='terms_checkBox'><strong> {% blocktrans %}I have read and understand the <a href='{{ terms_url }}' target=_blank> terms and conditions{% endblocktrans %}</a></strong>
                </div>
            </div>
            <div class="col-xs-6">
                <button type="button" name="Cancel" class="btn btn-default cancel-btn" onclick="javascript:close_modal()">{% trans "Cancel" %}</button>
                <button type="button" name="Submit" class="btn btn-primary submit-btn disabled" onclick="javascript:submit_form()">{% trans "Submit" %}</button>
            </div>
        </div>
    </div>
</div>

事件.py

from django.utils.translation import ugettext_lazy as _
from django.utils.text import format_lazy
from django import forms

from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout,Field,HTML,Div
from crispy_forms.bootstrap import Accordion,AccordionGroup

from mapApp.models import Incident
import datetime

why_personal_link = format_lazy('<a class="text-info" data-toggle="collapse" aria-expanded="false" aria-controls="why-personal" href=".tab-pane.active .why-personal"><span class="glyphicon glyphicon-question-sign"></span> <strong>',_("Why are we asking for personal details?"),'</strong></a>')

why_personal_well = _("Personal details such as age and gender are routinely collected in health research including studies examining cycling injuries (e.g.,Cripton et al. 2015). In addition,details such as rider experience and gender have been shown to be important predictors of cycling safety and risk (Beck et al. 2007). The goal of BikeMaps.org is to gather more comprehensive data to better assess cycling safety and risk. Providing personal details will allow us to more accurately fill in these data gaps.")


class IncidentForm(forms.ModelForm):
    helper = FormHelper()
    helper.form_tag = False # removes auto-inclusion of form tag in template
    helper.disable_csrf = True

    helper.layout = Layout(
        Accordion(
            AccordionGroup(
                _('Collision Details'),Field('geom',type='hidden',id='point'),Field('personal_involvement'),Field('witness_vehicle'),Field('date',id='incident_date',template='mapApp/util/%s_datepicker.html',autocomplete='off'),Field('i_type'),Field('incident_with'),Field('bicycle_type'),Field('ebike'),Field('injury'),Field('impact'),Field('trip_purpose'),Field('details',id='collision_details',placeholder=_('required'))
            ),AccordionGroup(
                _('Conditions'),Field('road_conditions'),Field('sightlines'),Field('cars_on_roadside'),Field('bike_lights'),Field('terrain'),Field('direction'),Field('turning'),Field('intersection'),Field('aggressive'),css_id='incident-conditions',),AccordionGroup(
                _('Personal Details'),HTML(why_personal_link),Div( Div(HTML(why_personal_well),css_class="well"),css_class='why-personal collapse' ),Field('source'),Field('age'),Field('birthmonth'),Field('sex'),Field('regular_cyclist'),Field('helmet'),css_id='incident-personal-details',)
    )

    def is_valid(self):

        # run default,parent validation first
        valid = super(IncidentForm,self).is_valid()

        # check date to ensure incident occurred within the past 2 years
        limit = datetime.timedelta(weeks=-104)
        min_date = datetime.datetime.today() + limit
        # hack fix because app is not time zone aware and we are trying to test dates in different time zones
        max_date = datetime.datetime.today() + datetime.timedelta(days=1)
        if 'date' in self.cleaned_data:
            submitted_date = self.cleaned_data['date']
            if submitted_date > max_date:
                self._errors['date'] = [_('The date can\'t be in the future.')]
                return False
            if submitted_date < min_date:
                self._errors['date'] = [_('Incidents must have occurred within the past two years.')]
                return False
        return valid

    class Meta:
        model = Incident
        exclude = ['p_type']

我不完全确定为什么它会这样显示。如果有人需要更多信息,我可以按要求提供。我对理解 Django 有点陌生。如果我忘记在这个问题上添加一些内容,请提前道歉。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...