набор запросов на основе связанной модели - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть две модели. Один (FAQ) относится к другому (FAQCategory). Я пытаюсь разработать набор запросов FAQCategories, которые назначены для FAQ, но только если хотя бы в одном FAQ есть вопрос и ответ.

class FAQCategory(models.Model):
    title = models.CharField(max_length=50, null=True, blank=True)       

    def __str__(self):
        return self.title

class FAQ(models.Model):
    category = models.ForeignKey(FAQCategory, on_delete=models.SET_NULL, null=True, blank=True)
    question = models.CharField(max_length=100, null=True, blank=True)
    answer = models.TextField(max_length=10000, null=True, blank=True)

Например, у нас есть 3 FAQCategories

1) General 2) Shipping 3) Warrenty

1) General не назначен никаким faqs. Он не должен отображаться в наборе запросов

2) Доставка назначена экземпляру FAQ, но этот FAQ не имеет ответа на него. Доставка не должна отображаться в наборе запросов

3) Гарантийный срок назначен на FAQ. Этот FAQ имеет и ответ, и значение вопроса. В результате Warrenty должен появиться в наборе запросов.

Как бы я написал это в django?

Спасибо!

1 Ответ

1 голос
/ 30 апреля 2020

Просто,

from django.db.models import Q

<b>exclude_expression = Q(faq__isnull=True) | Q(faq__question__exact="") | Q(faq__answer__exact="")</b>
qs = FAQCategory.objects.exclude(<b>exclude_expression</b>)

Ссылки:

...