Django 基于相关模型的查询集

Django 基于相关模型的查询集,django,django-views,Django,Django Views,我有两个模型。一个(FAQ)与另一个(FAQ类别)相关。我正在尝试开发一个FAQ类别的查询集,这些类别被分配给FAQ,但前提是至少有一个FAQ同时填写了问题和答案 class FAQCategory(models.Model): title = models.CharField(max_length=50, null=True, blank=True) def __str__(self): return self.title class FAQ(

我有两个模型。一个(FAQ)与另一个(FAQ类别)相关。我正在尝试开发一个FAQ类别的查询集,这些类别被分配给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个常见问题解答类别

1) 一般的 2) 船运 3) 沃伦蒂

1) “常规”未分配给任何常见问题解答。它不应该出现在查询集中

2) 配送已分配给FAQ实例,但该FAQ上没有答案。配送不应显示在查询集中

3) Warrenty被分配到FAQ。该FAQ既有答案也有问题值。因此,Warrenty应该出现在queryset中

我该如何用django写这个

谢谢

简单地说

from django.db.models import Q

exclude_expression = Q(faq__isnull=True) | Q(faq__question__exact="") | Q(faq__answer__exact="")
qs = FAQCategory.objects.exclude(exclude_expression)
从django.db.models导入Q
排除表达式=Q(faq\uuu isnull=True)| Q(faq\uu问题\uuuu精确=)| Q(faq\uu答案\uu精确=)
qs=FAQCategory.objects.exclude(排除表达式)
参考文献:


可能它们都应该是
is\u null
Nop。。。由于问答字段是CharField,所以在DB中,这些值存储为空字符串。这是不正确的Arakkal。查菲尔德可能没有。我刚刚通过测试证明了这一点。我明白了。。。您正在使用哪个数据库?