More efficient iterating

This commit is contained in:
shamoon 2024-11-29 17:49:15 -08:00
parent d43500b4f3
commit cd858cea67

View File

@ -1033,8 +1033,9 @@ class BulkEditView(PassUserMixin):
try: try:
modified_field = self.MODIFIED_FIELD_BY_METHOD[method.__name__] modified_field = self.MODIFIED_FIELD_BY_METHOD[method.__name__]
if settings.AUDIT_LOG_ENABLED and modified_field: if settings.AUDIT_LOG_ENABLED and modified_field:
old_documents = list( old_documents = {
Document.objects.filter(pk__in=documents).values( obj["pk"]: obj
for obj in Document.objects.filter(pk__in=documents).values(
"pk", "pk",
"correspondent", "correspondent",
"document_type", "document_type",
@ -1043,8 +1044,8 @@ class BulkEditView(PassUserMixin):
"custom_fields", "custom_fields",
"deleted_at", "deleted_at",
"checksum", "checksum",
),
) )
}
# TODO: parameter validation # TODO: parameter validation
result = method(documents, **parameters) result = method(documents, **parameters)
@ -1052,9 +1053,7 @@ class BulkEditView(PassUserMixin):
if settings.AUDIT_LOG_ENABLED and modified_field: if settings.AUDIT_LOG_ENABLED and modified_field:
new_documents = Document.objects.filter(pk__in=documents) new_documents = Document.objects.filter(pk__in=documents)
for doc in new_documents: for doc in new_documents:
old_value = next( old_value = old_documents[doc.pk][modified_field]
item for item in old_documents if item["pk"] == doc.pk
)[modified_field]
new_value = getattr(doc, modified_field) new_value = getattr(doc, modified_field)
if isinstance(new_value, Model): if isinstance(new_value, Model):