我只是好奇。正确的方法是什么,或者我应该说,过滤数据的有效方法是什么?我还在学习。假设您有数千条记录,那么您想要检索所有活动记录。
应该这样做。
Records.objects.all().exclude(active=False)
或者
Records.objects.filter(active=True)
他们有区别还是差不多?
答案 0 :(得分:1)
这两个表达式产生不同的查询。
您始终可以通过查看查询集的query
属性来检查它们:
>>> print Records.objects.all().exclude(active=False).query
Records.objects.all().exclude(active=False)
产生:
SELECT
<list_of_fields>
FROM
`<table_name>`
WHERE
NOT (`<table_name>`.`active` = False)
Records.objects.filter(active=True)
产生:
SELECT
<list_of_fields>
FROM
`<table_name>`
WHERE
`<table_name>`.`active` = True
另见: