| 25 | use_in_migrations = True |
| 26 | |
| 27 | def log_actions( |
| 28 | self, user_id, queryset, action_flag, change_message="", *, single_object=False |
| 29 | ): |
| 30 | if isinstance(change_message, list): |
| 31 | change_message = json.dumps(change_message) |
| 32 | |
| 33 | log_entry_list = [ |
| 34 | self.model( |
| 35 | user_id=user_id, |
| 36 | content_type_id=ContentType.objects.get_for_model( |
| 37 | obj, for_concrete_model=False |
| 38 | ).id, |
| 39 | object_id=obj.pk, |
| 40 | object_repr=str(obj)[:200], |
| 41 | action_flag=action_flag, |
| 42 | change_message=change_message, |
| 43 | ) |
| 44 | for obj in queryset |
| 45 | ] |
| 46 | |
| 47 | if len(log_entry_list) == 1: |
| 48 | instance = log_entry_list[0] |
| 49 | instance.save() |
| 50 | if single_object: |
| 51 | return instance |
| 52 | return [instance] |
| 53 | |
| 54 | return self.model.objects.bulk_create(log_entry_list) |
| 55 | |
| 56 | |
| 57 | class LogEntry(models.Model): |