Однострочный if else elif не работает в Django

После обращения к этому ответу Tim Pietzcker, я внедрил этот код на своем сайте. Я не получаю правильного решения для того же самого.

Ну, я пытаюсь реализовать оператор if elif and else в одной строке Django. Поэтому я попробовал следующее.

views.py

cart1 = CartTube.objects.values_list('tube__tubecode', flat = True)
cart2 = CartDrum.objects.values_list('drum__drumcode', flat = True)

machine = Machine.objects.filter(tubecode__in=cart1) if cart1 else Machine.objects.filter(drumcode__in=cart2) if cart2 else Machine.objects.filter(Q(tubecode__in=cart1) & Q(drumcode__in=cart2)) if cart1 else Machine.objects.all().order_by('id')

В приведенном выше коде эта часть Machine.objects.filter(Q(tubecode__in=cart1) & Q(drumcode__in=cart2)) if cart1 не работает

Ну, из приведенного выше кода я пытаюсь найти решение:

  1. If the user chooses Drum as a product then the same code should match with Machine and filter the exact matching product. and if,
  2. Drum product + Tube product is chosen then show the exact combination product from the Machine

Поскольку индивидуальный код работает отлично. Ниже приведены коды, которые работают идеально.

   ✔️ machine = Machine.objects.filter(tubecode__in=cart1)if cart1 else Machine.objects.all().order_by('id') 
   ✔️ machine = Machine.objects.filter(drumcode__in=cart2) if cart2 else Machine.objects.all().order_by('id') 
   ✔️ machine = Machine.objects.filter(Q(tubecode__in=cart1) & Q(drumcode__in=cart2)) if cart1 else Machine.objects.all().order_by('id')

Скажите, где я ошибаюсь

Вернуться на верх