Reduce number of queries to database for model_delta
function
#256
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.
When field is a relation
get_field_value
requires at least 2 additional queries to database. If str method of related object contains further relations, much more queries might be required. Accessing internal attribute (field.attname
, usuallyf'{field.name}_id'
), however, doesn't require any additional database queries. Only whenmodel_delta
determines the field really changed, string representation of the related objects are obtained by querying database. This can increase time needed to save lots of objects (>100) in the same view, when these objects have many relations, but not many (if any) of them changed.