我有一个数据库,其中数据由唯一的数字组织,并且名称不是唯一的。例如:
NumCOL: NameCOL:
1 Jay
2 Joel
3 Joey
4 Joel
我可以使用过滤器和get语句来获取数字等于某个数字的名称吗?假设我有一个表单,允许用户从数据库中选择一个数字,然后用户选择数字2.
num = request.POST.get('FormNumber') #num = 2
name = Database.objects.filter(NumCOL=num).get('NameCOL')
return HttpResponse(name)
可以这样做吗?我想在用户根据其编号选择的地方获取名称。根据代码,我应该得到回复Joel
。
感谢您的帮助!
答案 0 :(得分:2)
name = Database.objects.get(NumCOL=num)
#name = Database.objects.filter(NumCOL=num)
return HttpResponse(name.NameCOL)
答案 1 :(得分:1)
正如daniel在评论中所指出的那样,以及metmirr在他的回答中指出,你不需要像这样做。以下工作正常。
name = Database.objects.get(NumCOL=num)
return HttpResponse(name.NameCOL)
检索单个模型的所有字段不会给查询增加任何开销。 Get用于检索单行而不是单列。
要检索单个列,您可以执行以下操作:
name = Database.objects.filter(NumCOL=num).values('NameCol')
要检索单个单元格,您可以
name = Database.objects.filter(NumCOL=num).values_list('NameCol', flat=True)
作为附注,按照惯例,我们将模型命名为大写的第一个字母,字段都是小写。