feat: Huge performance improvement for admin_manager #318
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
The
admin_manager
of a versioned model provided access tocurrent_content_iterator
which allowed to "filter" out all current versions of the model: Either draft or published (if there is no draft). This API had the drawback that the result was not a queryset but an iterator (since the grouping was done in python).This method is now replaced by
current_content()
which is a filter that returns a queryset that only contains the current verison of the objects. Not only is it more convenient to have a qs returned, the number of database hits reduces from O(n) with n being the number of objects to 1.current_content_iterator
is kept to ensure compatibility with django CMS v4.1.0rc1Related resources
Checklist
master
Slack to find a “pr review buddy” who is going to review my pull request.