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: vini.gracindo@… 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.

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top