【发布时间】:2018-10-29 06:32:14
【问题描述】:
我有一个简单的更新视图。从前一个视图读取 POST 请求。这部分效果很好。
owner = ADMirror.objects.get (employeentname=request.POST.get('userpost'))
我有一个查询集定义为:
currentlevel = QVReportAccess.objects.filter(ntname = 'owner.employeentname, active = 1).values('sr_datareduce_summary_code')
打印出来的样子:
<QuerySet [{'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_c
ode': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_sum
mary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_dataredu
ce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_da
tareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {
'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z0712
6'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code': 'Z07126'}, {'sr_datareduce_summary_code':
'Z07126'}, '...(remaining elements truncated)...']>
查询集将包含 sr_datareduce_summary_code 的重复项,因为它们位于模型中的各个程序级别。
然后我有以下 if 语句,如果为真,则为是,如果为假,则为否,但即使查询集包含 Z07126,我的 if 语句也永远不会计算为真。为什么会这样,我怎样才能让它正常工作?
if QVReportAccess.objects.filter(ntname = owner.employeentname, active = 1).values_list('sr_datareduce_summary_code') == "Z07126":
appaccess = 'yes'
else:
appaccess = 'no'
print(appaccess)
【问题讨论】:
-
您将列表与字符串进行比较,这永远不会是真的
-
看起来您正在将元组列表(来自
values_list())与字符串进行比较。 -
如何将列表的值与字符串进行比较?
-
这是一个值列表,这意味着它包含许多项目,那么您想与
Z07126比较哪个字段?
标签: python django django-queryset