Questions tagged «django-queryset»

Django查询集是从Django ORM系统中检索对象的主要抽象

15
如何在Django queryset过滤中执行不等于?
在Django模型QuerySets中,我看到比较值存在__gt和__lt,但是存在__ne// !=/ <>(不等于?)。 我想使用不等于过滤掉: 例: Model: bool a; int x; 我想要 results = Model.objects.exclude(a=true, x!=5) 在!=不正确的语法。我试过__ne,<>。 我最终使用: results = Model.objects.exclude(a=true, x__lt=5).exclude(a=true, x__gt=5)

12
如何在Django视图中合并两个或多个查询集?
我正在尝试为正在构建的Django网站建立搜索,在该搜索中,我正在3种不同的模型中进行搜索。为了在搜索结果列表上进行分页,我想使用一个通用的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': …


6
如何在Django查询中执行OR过滤器?
我希望能够列出用户添加的项目(它们被列为创建者)或已被批准的项目。 所以我基本上需要选择: item.creator = owner or item.moderated = False 我将如何在Django中执行此操作?(最好使用过滤器或查询集)。

3
如何在Django queryset中执行OR条件?
我想编写一个与此SQL查询等效的Django查询: SELECT * from user where income >= 5000 or income is NULL. 如何构造Django queryset过滤器? User.objects.filter(income__gte=5000, income=0) 这是行不通的,因为它AND是过滤器。我想要OR过滤器以获取单个查询集的并集。

3
如何使用值列表过滤Django查询?
我敢肯定这是一个微不足道的操作,但是我不知道它是如何完成的。 肯定有比这更聪明的东西: ids = [1, 3, 6, 7, 9] for id in ids: MyModel.objects.filter(pk=id) 我正在寻找将它们全部添加到一个查询中,例如: MyModel.objects.filter(pk=[1, 3, 6, 7, 9]) 如何使用值列表过滤Django查询?



7
在Django中检查空的查询集
建议的检查查询是否返回任何结果的惯用法是什么? 例: orgs = Organisation.objects.filter(name__iexact = 'Fjuk inc') # If any results # Do this with the results without querying again. # Else, do something else... 我想有几种不同的检查方法,但是我想知道一个有经验的Django用户将如何做。文档中的大多数示例只是忽略了什么都没有发现的情况...

1
如何在Django queryset中执行小于或等于过滤器?
我试图通过每个称为“个人资料”的用户个人资料中的自定义字段来过滤用户。此字段称为级别,是0到3之间的整数。 如果我使用等于进行过滤,则会得到具有预期级别的用户列表: user_list = User.objects.filter(userprofile__level = 0) 当我尝试使用少于以下内容进行过滤时: user_list = User.objects.filter(userprofile__level < 3) 我得到了错误: 未定义全局名称“ userprofile__level” 有没有一种方法可以通过<或>进行过滤,或者我是否吠叫了错误的树。

14
如何在Django中过滤DateTimeField的日期?
我试图过滤DateTimeField与日期比较。我的意思是: MyObject.objects.filter(datetime_attr=datetime.date(2009,8,22)) 我得到一个空的查询集列表作为答案,因为(我认为)我不在考虑时间,但我希望“任何时间”。 Django中有一种简单的方法吗? 我在datetime中设置了时间,但不是00:00。

13
Django过滤器与获取单个对象?
我正在与一些同事就此进行辩论。当您只期望一个对象时,是否有一种在Django中检索对象的首选方法? 两种明显的方法是: try: obj = MyModel.objects.get(id=1) except MyModel.DoesNotExist: # We have no object! Do something... pass 和: objs = MyModel.objects.filter(id=1) if len(objs) == 1: obj = objs[0] else: # We have no object! Do something... pass 第一种方法在行为上似乎更正确,但是在控制流中使用异常,这可能会带来一些开销。第二个是回旋处,但永远不会引发例外。 有什么想法是可取的?哪个更有效?

3
Django values_list vs值
在Django中,以下两个之间有什么区别: Article.objects.values_list('comment_id', flat=True).distinct() 与 Article.objects.values('comment_id').distinct() 我的目标是在每个下方获得一个唯一的注释ID列表Article。我已经阅读了文档(实际上已经使用了这两种方法)。结果似乎很相似。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.