Django 基于相关模型的查询集
我有两个模型。一个(FAQ)与另一个(FAQ类别)相关。我正在尝试开发一个FAQ类别的查询集,这些类别被分配给FAQ,但前提是至少有一个FAQ同时填写了问题和答案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(
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。查菲尔德可能没有。我刚刚通过测试证明了这一点。我明白了。。。您正在使用哪个数据库?