Нужно прочитать хотя бы один учебник по Python и узнать об областях видимости. Или хотя бы проявить немного логики, чтобы понять, что переменная, объявленная внутри блока условного выражения, не может существовать за его пределами, так как блок может и не выполниться.
Пять дней страданий и три вопроса из-за того, что не только документацию читать не пробовали, но ещё и код приводите не тот, который у вас ошибку вызывает.
Если в переменной page передаёте имя url-паттерна: <form action="{% url page %}">
Если из представления передаётся заранее сформированный url: <form action="{{ page }}">
from functools import reduce
from operator import or_
from django.db.models import Q
values = (Q(type=int(j)) for j in (i.strip() for i in (query_type or '').split(',')) if j.isdigit())
query = reduce(or_, values, Q())
qs = qs.filter(query)