Django 查询返回空白值
Posted
技术标签:
【中文标题】Django 查询返回空白值【英文标题】:Django query is returning blank values 【发布时间】:2016-06-29 21:40:09 【问题描述】:我正在编写一个应用程序,该应用程序应在一个选择框中列出来自当地体育联盟的所有球队,用户可以从中选择他们最喜欢的球队,但是当我打开该应用程序时,一切看起来都很好,只是选择字段仅显示空白选项。我知道它正在正确查询数据库,因为它在选择框中显示了所有 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>
谢谢!
【问题讨论】:
你在使用 AngularJS 吗? 【参考方案1】:在你的循环中,你有
% 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
)。这样您就不必手动呈现或验证该字段,从而防止错误。
【讨论】:
感谢 Alasdair,这就是问题所在!以上是关于Django 查询返回空白值的主要内容,如果未能解决你的问题,请参考以下文章
子查询 django 查询以从对象中获取最大的不同值并返回这些对象
在运行 SELECT 语句时,日期列中的空白值返回为 1900/01/01