Opened 6 years ago
Last modified 6 years ago
#30151 closed Bug
last() and [] operator give different results — at Version 1
Reported by: | Martin Ennemoser | Owned by: | nobody |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.11 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
I have a model RSSFeed. To get the last element in my DB, I do:
RSSFeed.objects.last() # Output: <RSSFeed: www.sooperarticles.com>
I slice it to get the first 10 element in the query
first_ten_feeds = RSSFeed.objects.all()[:10]
Using first and the bracket operator is consistent:
first_ten_feeds.first()
# Output: <RSSFeed: pressetext News>
first_ten_feeds[0]
# Output: <RSSFeed: pressetext News>
But using last and the bracket operator is not consistent:
first_ten_feeds[9] # Output: <RSSFeed: FinanzNachrichten.de: Nachrichten zu IT-Dienstleistungen> first_ten_feeds.last() # Output: <RSSFeed: www.sooperarticles.com>
Why? I expect to get the same result for last() and [] above.
RSSFeed.objects.last() and first_ten_feeds.last() seem to give the same result but that does not make sense to me.
I already openend a SO question with the same content: https://stackoverflow.com/questions/54477472/last-and-operator-give-different-results
There I was suggested to open a bug.