Opened 14 years ago
Closed 14 years ago
#18200 closed Bug (duplicate)
prefetch_related works invalid!
| Reported by: | Artem Skoretskiy | Owned by: | nobody |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | 1.4 |
| Severity: | Normal | Keywords: | |
| Cc: | tonn81@… | Triage Stage: | Unreviewed |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
I found that getting GenericRelation related objects by prefetch_related gives false result!
Example:
from django.contrib.comments.models import Comment class Media(models.Model): comments = generic.GenericRelation(Comment, object_id_field='object_pk') >>> Media.objects.filter(pk=1731)[0].comments.all() # works as expected [<Comment: admin: It is a new comment>] >>> Media.objects.filter(pk=1731).prefetch_related('comments')[0].comments.all() # nothing found! [] >>>
Thus ORM run proper SQL query:
SELECT * FROM "django_comments" WHERE ("django_comments"."object_pk" IN ('1731') AND "django_comments"."content_type_id" = 41 )
I may provide any information if needed. At the point I see no entry point to start digging.
Change History (2)
comment:1 by , 14 years ago
comment:2 by , 14 years ago
| Resolution: | → duplicate |
|---|---|
| Status: | new → closed |
The fix suggested in #17991 also works for me so it seems to be the same bug.
Note:
See TracTickets
for help on using tickets.
Maybe the same issue as in #17991? Can you check?