#24770 closed Bug (duplicate)
Model instances are dropped by annotate when reverse foreign key is empty.
| 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 )
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 (3)
comment:1 by , 11 years ago
| Description: | modified (diff) |
|---|
comment:2 by , 11 years ago
| Resolution: | → duplicate |
|---|---|
| Status: | new → closed |
comment:3 by , 10 years ago
Note:
See TracTickets
for help on using tickets.
Actually, I think this is a duplicate of #24753.