我正在编写一个应用程序,它应该在一个选择框中列出本地体育联盟的所有球队,用户可以从中选择他们最喜欢的球队,但是当我打开该应用程序时,除了“选择”字段只显示空白选项外,其他一切看起来都很好。我知道它在正确地查询数据库,因为它在选择框中显示了所有18个选项,但它们都显示为空,我没有得到任何错误。
这是我的模型:
class Team(models.Model):
team_id = models.CharField(primary_key=True, max_length=3)
city = models.CharField(max_length=50)
name = models.CharField(max_length=50)
class Meta:
managed = False
db_table = 'team'
def __unicode__(self):
return self.team_id
我的观点:
@verified_email_required()
def crearcuenta(request):
equipos = Team.objects.all()
form = CuentaForm()
if request.method == "POST":
form = CuentaForm(request.POST)
if form.is_valid():
cuenta = form.save(commit=False)
cuenta.user = request.user
cuenta.equipo_favorito = request.POST.get("equipo", "")
cuenta.save()
return HttpResponseRedirect("/dashboard/")
context = ({
"equipos": equipos,
"form": form
})
return render(request, "teams/crearcuenta.html", context)
最后是html:
<div class="col-md-8 form-group mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
<label for="Equipo" class="col-md-3 control-label mdl-textfield__label">Correo</label>
<div>
<select id="Equipo" name="equipo" class="selectpicker form-control" data-live-search="true">
<option>Seleccione uno</option>
{% for equipo in equipos %}
<option value="{{ equipos.team_id }}">{{ equipos.city }} {{ equipos.name }}</option>
{% endfor %}
</select>
</div>
</div>
谢谢!
最佳答案
在你的圈子里,你有
{% for equipo in equipos %}
在循环中,您希望访问单个
equipo
的属性,因此应该有{{ equipo.team_id }}
而不是{{ equipos.team_id }}
。{% for equipo in equipos %}
<option value="{{ equipo.team_id }}">{{ equipo.city }} {{ equipo.name }}</option>
{% endfor %}
理想情况下,您可以在表单中包含
equipo
,并让Django负责呈现表单(例如{{ form.equipo }}
)。这样就不必手动渲染或验证字段,这样可以避免错误。