Цепные объекты Q - PullRequest
       12

Цепные объекты Q

0 голосов
/ 19 сентября 2018

Используя это в качестве примера от Дана Херрара, введите код здесь

    from django.db.models import Q
    user_pk = 1
    category_pk = 1  #some times None
    f = Q( user__pk = user_pk, date=now() )
    if category_pk is not None:
        f &= Q( category__pk = category_pk )
    todays_items = Item.objects.filter( f  )

Я создаю массивную цепочку фильтров (я бы не хотел), поэтому у меня есть ... введите код здесь

    from django.db.models import Q
    f = Q(availability_text=this)
    if 'cabins' in request.POST:
        cabins = request.POST['cabins']
        if cabins != "0" and cabins != "":
            c = cabins
            c = int(c)
            f &= Q(cabins=c)
        if 'thruster' in request.POST:
            thruster = request.POST['thruster']
            if thruster != 0:
                t = 1
                f &= Q(thruster=t)

и т. Д.

это результат испытания f

(AND: ('Availability_text', ''), ('Bow_thruster', 1))

но я получаю

"Слишком много значений для распаковки" в

            wm = Boat.objects.filter(name=x).filter( f )[:1].get()

, что сбивает с толку, так как я работаю с 4 списками, и это третья итерация, и она не выдает ошибкуна итерации 1 или 2

Любое понимание будет с благодарностью получено

...