Opened 13 years ago
Last modified 6 years ago
#17930 closed Bug
Error in Queryset with operator | (union queryset) + slice — at Initial Version
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.3 |
Severity: | Normal | Keywords: | queryset union, slice |
Cc: | Triage Stage: | Ready for checkin | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
class Example: name = models.CharField(max_length = 30) public = models.BooleanField()
Example.objects.create('example 1', False)
<Example: Example object>
Example.objects.create('example 2', False)
<Example: Example object>
Example.objects.create('example 3', True)
<Example: Example object>
Example.objects.create('example 4', True)
<Example: Example object>
Example.objects.create('example 5', False)
<Example: Example object>
query = Example.objects.filter(public = True)
if(query.count() < 3):
... query = query | Example.objects.filter(public = False).order_by('?')[:1]
...
query.count()
5
When using the union of querysets to slice it "ignores" the slice and takes all objects where public = false.