Методы запросов `filter` и` Q` в Django с не работающими условиями ANDed - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу отфильтровать модель с двумя условиями с помощью логики "и".Я тоже пытался использовать цепные фильтры и метод Q, но не получил желаемого результата.Это работает как "или" логика.Пожалуйста, помогите.

Я пытался:

Products.objects.order_by('Name').values('Name', 'UPC', 'ProductPrice', 'SubDeptNumber', 'CategoryNumber', 'FirstCompPrice', 'SecondCompPrice', 'ThirdCompPrice').filter(Name_icontains="Land", UPC_contains="15")

и

p = Products.objects.order_by('Name').values('Name', 'UPC', 'ProductPrice', 'SubDeptNumber', 'CategoryNumber', 'FirstCompPrice', 'SecondCompPrice', 'ThirdCompPrice').filter(Name_icontains="Land")

result = p.filter(UPC_contains="15")

Я получаю результаты, показывающие все записи с UPC, который содержит "15", даже если name нет "Земля"

1 Ответ

0 голосов
/ 17 декабря 2018

Вам нужно только передать оба условия в качестве аргументов ключевых слов в одном и том же фильтре, поскольку они будут ANDed по умолчанию :

Entry.objects.filter(
    headline__startswith='What',
    pub_date__gte=datetime.date.today()
)
...