Форум сайта python.su
ТАкая проблема!есть список со значениями фильтров,когда составляю выражение из этих значений получается str тип и имя.objects.filter(str) не хавает его.как этот str перевести в <class ‘django.db.models.query_utils.Q’>?
for i in range(0, len(b)) : st0 = "|" if i != (len(b) - 1) : st = "Q" + "(" + "Machine" + "=" + "'" +str(b[i]) + "'" + ")" + st0 else : st = "Q" + "(" + "Machine" + "=" + "'" +str(b[i]) + "'" + ")" st2.append(st) st2 = Q(Machine='Lancelot')|Q(Machine='Guinevere') data = serializers.serialize("json", History.objects.filter(st2)) # здесь str (st2) не проходит
Офлайн
filters=[Q(Machine=i) for i in b] q=Q() for filter in filters: q | = filter history=History.objects.filter(q)
Офлайн
Spasibo!
Офлайн
Кстати, в данном случае возможно подойдет __in:
History.objects.filter(Machine__in=b)
Офлайн
До ответов, реализовал так:
for i in b : data = serializers.serialize("json", History.objects.filter(sets = i)) data2 = json.loads(data) k.append(data2)
Офлайн