1

我有一个网页,您可以在其中向数据库添加新计算机/IP,或从下拉列表中选择以前添加的。一切正常,除了用户从列表中选择一个项目后我得到的是它的索引,而不是它的名称。我怎样才能得到这个名字?我正在尝试将查询集作为向量访问,如此处所示但出现 TypeError。

视图.py:

d = DropDownList(request.POST or None)
    if d.is_valid():
        c = request.POST.get('current')
        return HttpResponse(d.qs[c-1])

模型.py:

class DropDownList(forms.Form):
    qs = Computer.objects.all().order_by('name')
    current = forms.ModelChoiceField(qs, widget=forms.Select(attrs={"onChange":'submit()'}))    

class Computer(models.Model):
    name = models.CharField(max_length=200, default='')
    ip = models.CharField(max_length=200, default='')
    def __unicode__(self):
        return self.name

主页.html:

<form method="post">
    {{ current }}
</form>
4

1 回答 1

1

使用表单的全部意义在于它负责验证和数据转换,因此在您看来,您应该从表单中获取数据,而不是从 POST 本身获取数据。

if d.is_valid():
    c = d.cleaned_data['current']
于 2013-04-18T10:18:15.493 回答