当我使用输入选择时,我无法使用bootstrap使我的django正常工作。 标签和框出现,但没有任何内容。在盒子下方,我看到了所有的设备ID。我无法将它们放入盒子中。我错过了什么?
<div class="form-group">
<label for="equipment_id" control-label">{{ form.equipment_id.label }}</label>
{% for equip in form.equipment_id %}
<select id="equipment_id" name="equipment_id" class="form-control">
<option>{{ equip }}</option>
</select>
{% endfor %}
<p>{{ form.equipment_id.errors.as_text }}</p>
</div>
新
{% extends "base.html" %}
{% load bootstrap %} <!--using app `django-bootstrap-form` app name: `bootstrapform` -->
{% block content %}
<div class="container">
<form class="form-horizontal" method="post">{% csrf_token %}
<legend>Report Incident</legend>
{{ form.incident_date_time_occurred|bootstrap_horizontal }}
{{ form.incident_category|bootstrap_horizontal }}
{{ form.clinical_sample|bootstrap_horizontal }}
{{ form.number_of_clinical_samples|bootstrap_horizontal }}
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<p>(If not a clinical sample please leave as zero)</p>
</div>
</div>
<select multiple="multiple" class=" form-control" id="id_multiple_choice" name="multiple_choice">
{% for tech in form.technician %}
<option>{{ tech }}</option>
{% endfor %}
</select>
<div class="form-group">
<div class="col-sm-10 col-sm-offset-2">
<button type="submit" class="btn btn-primary btn-block">Submit</button>
</div>
</div>
</form>
</div>
{% endblock %}
models.py
class Incident(models.Model):
incident_date_time_reported = models.DateTimeField('incident reported', default=timezone.now)
user_id = models.ForeignKey(User, related_name='user')
incident_date_time_occurred = models.DateTimeField('incident occurred', default=timezone.now)
clinical_sample = models.BooleanField('clinical sample?', default=True)
number_of_clinical_samples = models.IntegerField('Number of clinical samples', default=0)
sample_id_numbers = models.CharField(max_length=500)
equipment_id = models.ForeignKey(Equipment)
incident_category = models.ForeignKey(Incident_Category)
technician = models.ForeignKey(User, related_name='technician')
答案 0 :(得分:2)
假设此div正确包含在表单标记中:
您应该使用form.equipment,equipment_id只有ID号。
您正在尝试迭代创建选项,但您的选择标记位于for循环中,因此您要为每个设备对象创建一个选择,而不是每个选项都有一个选项。
< / LI>没有其余的代码,目前还不清楚是否还有其他问题。
我假设你要做的是让表单显示bootstrap属性。更清晰的解决方案是使用包django-bootstrap-forms(pip install django-bootstrap-forms
),将其包含在{% load bootstrap %}
的模板中,并按如下方式使用:
<form id="form" class="form" method="post">
{% csrf_token %}
{{ form|bootstrap }}
<div class="form-actions">
<button id="create_submit" class="btn btn-default" type="submit">Save</button>
</div>
</form>
<强>更新强>
您仍在错误地迭代选项。正确就像是:
{% for value,text in form.technician.choices %}
<option value="{{ value }}">{{ text }}</option>
{% endfor %}
如果技术人员是外键字段(每个模型实例只允许一个),则可能会遇到实际发布表单的问题。但这是一个单独的问题:)