Tag: django queryset

Djangofilter – 或?

我将如何做一个“或”在Django的filter。 基本上,我希望能够列出用户添加的项目(他们被列为创build者)或项目已被批准 所以我基本上需要select item.creator = owner or item.moderated = False 我将如何在Django中执行此操作(最好使用filter / queryset)

Django筛选查询集__in列表中的* every *项

假设我有以下模型 class Photo(models.Model): tags = models.ManyToManyField(Tag) class Tag(models.Model): name = models.CharField(max_length=50) 在视图中,我有一个名为类别的活动filter的列表。 我想过滤所有标签出现在类别的照片对象。 我试过了: Photo.objects.filter(tags__name__in=categories) 但是这匹配任何类别的项目,而不是所有的项目。 所以如果类别是['假期','夏天']我想要照片的假期和夏天的标签。 这可以实现吗?

如何在Django视图中组合2个或更多的查询集?

我试图build立一个Django网站的search我正在build设,并在search我在3个不同的模型search。 为了在search结果列表上得到分页,我想使用通用的object_list视图来显示结果。 但要做到这一点,我必须合并3个查询集合到一个。 我怎样才能做到这一点? 我试过这个: result_list = [] page_list = Page.objects.filter(Q(title__icontains=cleaned_search_term) | Q(body__icontains=cleaned_search_term)) article_list = Article.objects.filter(Q(title__icontains=cleaned_search_term) | Q(body__icontains=cleaned_search_term) | Q(tags__icontains=cleaned_search_term)) post_list = Post.objects.filter(Q(title__icontains=cleaned_search_term) | Q(body__icontains=cleaned_search_term) | Q(tags__icontains=cleaned_search_term)) for x in page_list: result_list.append(x) for x in article_list: result_list.append(x) for x in post_list: result_list.append(x) return object_list(request, queryset=result_list, template_object_name='result', paginate_by=10, extra_context={'search_term': search_term}, template_name="search/result_list.html") 但是这不起作用当我尝试在通用视图中使用该列表时,出现错误。 该列表缺less克隆属性。 任何人都知道我可以如何合并三个列表, page_list , […]