Opened 10 years ago

Last modified 10 years ago

#24770 closed Bug

Model instances are dropped by annotate when reverse foreign key is empty. — at Version 1

Reported by: Ian Foote Owned by: nobody
Component: Database layer (models, ORM) Version: 1.8
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 Ian Foote)

I ran across an odd interaction between annotate, Sum, Case, When and a reverse ForeignKey. I've prepared a minimal testcase. I expect the Post I created to be in the queryset, annotated with 0, but instead the queryset is empty.

The query generated by the annotate looks like:

SELECT "bug_post"."id", "bug_post"."created", SUM(CASE WHEN "bug_comment"."created" > ("bug_post"."created") THEN 1 ELSE 0 END) AS "unread_comments" FROM "bug_post" INNER JOIN "bug_comment" ON ( "bug_post"."id" = "bug_comment"."post_id" ) GROUP BY "bug_post"."id", "bug_post"."created"

I initially ran into this on postgres, but my minimal testcase also shows it on sqlite.

Change History (1)

comment:1 by Ian Foote, 10 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top