解压缩的值太多[Django]

时间:2015-08-03 12:46:22

标签: python django

def index(request):
    expiring_list = probe.objects.filter("isExpired=True")
    output = ', '.join([p.serial for p in expiring_list])
    return HttpResponse(output)

isExpired是一个布尔函数。我应该如何修改过滤器,以便过滤器不会引发ValueError

2 个答案:

答案 0 :(得分:1)

我认为isExpired不是模型中的字段,而是对上一个问题的引用Refresh a field from another table [Django]

我认为exp_date是您正在寻找的字段。

试试这个:

import datetime

def index(request):
   expiring_list = probe.objects.filter(exp_date__lt=datetime.date.today())
   output = ', '.join([p.serial for p in expiring_list])
   return HttpResponse(output)

答案 1 :(得分:0)

您正在以错误的格式进行查询。

您的查询格式应为:

expiring_list = probe.objects.filter(isExpired = True)

如果isExpired是您的模型字段,则需要进行此查询。但是既然你说它是一个函数,假设函数在类中,你需要以下列方式获取所有对象:

expiring_list = []

objects = probe.objects.all()

for obj in objects:
    if obj.isExpired() == True:
        expiring_list.append(obj)

expiring_list现在将包含模型探测的所有对象,其中isExpired函数返回True