我有一个网页,您可以在其中添加新计算机/ IP到数据库,或者从下拉列表中选择之前添加的计算机/ IP。一切正常,除了用户从列表中选择项目后得到的是它的索引,而不是它的名称。 我怎么能得到这个名字?我试图将查询集作为向量访问here,但我得到一个TypeError。
views.py:
d = DropDownList(request.POST or None)
if d.is_valid():
c = request.POST.get('current')
return HttpResponse(d.qs[c-1])
models.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
home.html的:
<form method="post">
{{ current }}
</form>
答案 0 :(得分:1)
使用表单的重点在于它负责验证和数据转换,因此在您的视图中,您应该从表单中获取数据,而不是从POST本身获取数据。
if d.is_valid():
c = d.cleaned_data['current']