About Preserving Entries Related to Deleted Users

If you need to preserve items in the database, even when related users are deleted, use this patern:

from django.contrib.auth import User
User = get_user_model()

def get_sentinel_user():
    return User.objects.get_or_create(username="DELETED_USER")[0]

class Payment(models.Model):
    user = models.ForeignKey(
        User,
        on_delete=models.SET(get_sentinel_user)
    )

Tips and Tricks Programming Django 6.x Django 5.2 Django 4.2