@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 перевести при передаче.
Спасибо!
  • Вопрос задан
  • 341 просмотр
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Судя по тексту ошибки, возникает она вообще не при выборке из БД, а на поиске маршрута.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы