fix: MiddlewareEvents breaking import without user model app installed - #259
Open
juliencloud wants to merge 1 commit into
Open
fix: MiddlewareEvents breaking import without user model app installed#259juliencloud wants to merge 1 commit into
juliencloud wants to merge 1 commit into
Conversation
MiddlewareEvents.user was always a ForeignKey to AUTH_USER_MODEL, which fails when the user model's app is not in INSTALLED_APPS. Fall back to a TextField proxy when the app is unavailable, matching how url is handled. Add _middleware_events_user_field() so both paths are testable, and document the behavior in aggregating_events.md.
juliencloud
force-pushed
the
fix-middleware-events-without-user-model
branch
from
July 13, 2026 20:39
a6c144d to
b2d5cda
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
MiddlewareEvents.useris always declared as aForeignKeytosettings.AUTH_USER_MODEL, which fails when the user model's app is not inINSTALLED_APPS. Django can fail to start even if you never useMiddlewareEvents, because the model is defined at import time.This change checks whether the user model's app is installed and falls back to a
TextField(same asurl) when it is not.Changes
_middleware_events_user_field()inpghistory/models.pyMiddlewareEvents.userasForeignKeyorTextFielddocs/aggregating_events.mdTest plan
make test— passedmake lint— ruff and docs passedmake full-test-suite— all tox pytest envs passedThanks for maintaining
django-pghistory! Happy to adjust anything based on feedback.