@SergeiKl

Как сделать объединение фильтров в Django?

Подскажите как объединить несколько фильтров в django?
Если просто написать руками, то выглядит так:
bbs = Bd.objects.filter(par1=pk1).filter(par2=pk2)
Сделать следующее:
filter1 и filter2 должны заполняться если pk1 и pk2 != 0
Т.е. если pk2 !=0 то:
bbs = Bd.objects.filter(par1=pk1)
Если pk1!=0 то:
bbs = Bd.objects.filter(par2=pk2)

Сделал так:
if pk1!= 0:
        fp = '.filter(prepod='
        filter_par1 = f'.filter(par1={pk1})'
        bbs = f'Bd.objects.filter(par1={pk1})'


При выполнении ошибка:
Reverse for 'by_par' with arguments '('',)' not found. 1 pattern(s) tried: ['zoom/pr/(?P[0-9]+)/$']

Т.е. цифру из pk1 он преобразует в строку. Правильно?
Как мне ее в int перевести при передаче.
Спасибо!
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Судя по тексту ошибки, возникает она вообще не при выборке из БД, а на поиске маршрута.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bacon
Зачем ты их сделал строками? Как текстом описал до "Сделал так:", так и делай if
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 150 000 до 180 000 ₽
Appboxo Алматы
от 830 000 до 1 250 000 ₸
Verme Москва
от 120 000 ₽
27 янв. 2021, в 00:37
11111 руб./за проект
26 янв. 2021, в 23:30
3000 руб./за проект
26 янв. 2021, в 23:07
1000 руб./за проект