Opened 4 weeks ago

Closed 4 weeks ago

Last modified 4 weeks ago

#36555 closed New feature (wontfix)

Allow null for LogEntry.user

Reported by: Siburg Owned by:
Component: contrib.admin Version: dev
Severity: Normal Keywords:
Cc: Siburg Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Siburg)

The user attribute of LogEntry is currently required. That causes two problems for me:

  1. I have admin actions that can be performed by users as well as by periodically scheduled tasks (think Celery). For the latter case I now have to get_or_create a proxy user record for the LogEntry for that action. For example:
    proxy_user, created = User.objects.get_or_create(
        username='DataScrubTask',
        defaults={'first_name': 'Proxy user for LogEntry records from "archive_and_scrub_records" task'},
    )
    
  2. When a user who took an admin action is deleted then the admin history is effectively corrupted. Because of the CASCADE for LogEntry.user, their actions are deleted from the history.

To eliminate those problems I propose to add blank=True, null=True to the user field definition, and change CASCADE to SET_NULL.

To provide more flexibility for tracking actions, I also propose to add a CharField that can contain a text representation of who or what performed the action.

I have created a preliminary, incomplete PR https://github.com/django/django/pull/19731 to show my proposed approach. I will gladly continue work on that if this proposal is accepted.

Change History (2)

comment:1 by Sarah Boyce, 4 weeks ago

Resolution: wontfix
Status: newclosed

Hi Siburg, thank you for the suggestion!

When suggesting a new feature for Django, the feature idea should first be proposed and discussed with the community. To do that, please raise this on the new feature tracker.

I'll close the ticket for now, but if the community agrees with the proposal, please return to this ticket and reference the forum discussion so we can re-open it. For more information, please refer to the documented guidelines for requesting features.

Thanks!

comment:2 by Siburg, 4 weeks ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.
Back to Top