[Django] #30713: ListView queryset issue

5 views
Skip to first unread message

Django

unread,
Aug 17, 2019, 5:16:34 AM8/17/19
to django-...@googlegroups.com
#30713: ListView queryset issue
-------------------------------------+-------------------------------------
Reporter: Dmitrij | Owner: nobody
Strelnikov |
Type: Bug | Status: new
Component: Database | Version: 2.2
layer (models, ORM) |
Severity: Normal | Keywords: queryset
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
Hi guys,
is this intentional behaviour or not?


{{{
class SomeQuerySet(models.QuerySet):
def active(self):
print('active')
data = cache.get(CACHE_KEY)
if data is None:
print('no cache')
data =
self.select_related('related').filter(date_expired__gte=timezone.localtime().now()).filter(
some__is_active=True).order_by('-date_activated')
cache.set(CACHE_KEY, data, 30)
return data

}}}


{{{
class QSSomeListView(ListView):
queryset = Some.objects.active()
}}}

{{{
class GetQSSomeListView(ListView):
def get_queryset(self):
return Some.objects.active()
}}}

QSSomeListView never print anything from `active()` method on page access,
and actually never hit cache. It print only `active` once at project
startup.

GetQSSomeListView works as expected.

If its intentional, could you please explain / point me why so?
Thank you.

--
Ticket URL: <https://code.djangoproject.com/ticket/30713>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Aug 18, 2019, 2:59:18 AM8/18/19
to django-...@googlegroups.com
#30713: ListView queryset issue
-------------------------------------+-------------------------------------
Reporter: Dmitrij Strelnikov | Owner: nobody
Type: Bug | Status: closed
Component: Database layer | Version: 2.2
(models, ORM) |
Severity: Normal | Resolution: invalid
Keywords: queryset | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Carlton Gibson):

* status: new => closed
* resolution: => invalid


Comment:

Please don't use the issue tracker as a secondary support channel. See
TicketClosingReasons/UseSupportChannels.

--
Ticket URL: <https://code.djangoproject.com/ticket/30713#comment:1>

Django

unread,
Aug 18, 2019, 3:04:01 AM8/18/19
to django-...@googlegroups.com
#30713: ListView queryset issue
-------------------------------------+-------------------------------------
Reporter: Dmitrij Strelnikov | Owner: nobody
Type: Bug | Status: new

Component: Database layer | Version: 2.2
(models, ORM) |
Severity: Normal | Resolution:
Keywords: queryset | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Dmitrij Strelnikov):

* status: closed => new
* resolution: invalid =>


Comment:

Carlton, so you are telling this behaviour is not a bug?
It's not support question, if so I would use stack overflow instead.
Thanks

--
Ticket URL: <https://code.djangoproject.com/ticket/30713#comment:2>

Django

unread,
Aug 18, 2019, 4:10:06 AM8/18/19
to django-...@googlegroups.com
#30713: ListView queryset issue
-------------------------------------+-------------------------------------
Reporter: Dmitrij Strelnikov | Owner: nobody
Type: Bug | Status: closed

Component: Database layer | Version: 2.2
(models, ORM) |
Severity: Normal | Resolution: invalid

Keywords: queryset | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Claude Paroz):

* status: new => closed
* resolution: => invalid


Comment:

No, it's not a bug in Django. It's related to your `active()` method not
being lazily evaluated. Please follow Carlton's advice.

--
Ticket URL: <https://code.djangoproject.com/ticket/30713#comment:3>

Django

unread,
Aug 18, 2019, 4:15:59 AM8/18/19
to django-...@googlegroups.com
#30713: ListView queryset issue
-------------------------------------+-------------------------------------
Reporter: Dmitrij Strelnikov | Owner: nobody
Type: Bug | Status: closed
Component: Database layer | Version: 2.2
(models, ORM) |
Severity: Normal | Resolution: invalid
Keywords: queryset | Triage Stage:
| Unreviewed
Has patch: 0 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Dmitrij Strelnikov):

thank you Claude, this was the thing I need to hear
have a great day

--
Ticket URL: <https://code.djangoproject.com/ticket/30713#comment:4>

Reply all
Reply to author
Forward
0 new messages