Однострочный 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
не работает
Ну, из приведенного выше кода я пытаюсь найти решение:
- If the user chooses
Drum
as a product then the same code should match withMachine
and filter the exact matching product. and if, Drum
product +Tube
product is chosen then show the exact combination product from theMachine
Поскольку индивидуальный код работает отлично. Ниже приведены коды, которые работают идеально.
✔️ 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')
Скажите, где я ошибаюсь