#26964 closed Bug (duplicate)
No mention of index_together on the GenericForeignKey section
Reported by: | Aidan Lister | Owned by: | nobody |
---|---|---|---|
Component: | Documentation | Version: | 1.9 |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | yes | UI/UX: | no |
Description (last modified by )
We've been troubleshooting a performance issue and noticed that there was no index on an important GenericForiegnKey.
Once we'd resolved that, we noticed a contrib app had no index either (django reversion).
It seems like this should be mentioned in the documentation here:
https://docs.djangoproject.com/en/1.9/ref/contrib/contenttypes/#generic-relations
Suggested wording:
If you plan to search for child objects which have a generic relation to your parent object, e.g. find all tags linked to a piece of content, then you should consider adding a database index on the content type and object ID using index_together (https://docs.djangoproject.com/en/1.9/ref/models/options/#index-together). Django does not do this for you automatically as it does with ForeignKey's.
In the example above, this would look like:
class Meta: index_together = [ ["content_type", "object_id"], ]
Change History (5)
comment:1 by , 8 years ago
Description: | modified (diff) |
---|
comment:2 by , 8 years ago
Description: | modified (diff) |
---|
comment:3 by , 8 years ago
Description: | modified (diff) |
---|
comment:4 by , 8 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
comment:5 by , 6 years ago
@Aidan:
Once we'd resolved that, we noticed a contrib app had no index either (django reversion).
I've created https://github.com/etianen/django-reversion/issues/754 to track this - would be good if you could provide more info there, e.g. when this is needed/useful.
I'll mark this as a duplicate of #23435 which suggests we might change the behavior and automatically add the index you describe. Feel free to give that implementation a try or to submit a documentation PR referencing that ticket (commit message = "Refs #23435 -- ....").