Opened 7 days ago
Closed 7 days ago
#35898 closed New feature (wontfix)
Cannot use base managers of related models in dumpdata command
Reported by: | Lorenzo Martini | Owned by: | |
---|---|---|---|
Component: | Core (Serialization) | Version: | 5.1 |
Severity: | Normal | Keywords: | dumpdata chunk_size iterator prefetch_related user base_manager default_manager |
Cc: | Lorenzo Martini | 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 )
Hello Django Team,
I'm encountering an issue with the django-admin dumpdata command when trying to serialize a model with a ManyToMany relationship to a custom User model. This custom User model inherits from another User model defined in a different app.
It appears that Django is using the default manager of the custom User model, rather than its base manager. This custom manager includes prefetch_related calls in its get_queryset function, which I suspect is causing the issue.
I've attached a Dockerized Django app that replicates this behavior. You can also find it on GitHub: https://github.com/Martini991/django-dumpdata-bug.
For reference, I’ve reviewed two related tickets, but they seem to address different issues:
https://code.djangoproject.com/ticket/35238
https://code.djangoproject.com/ticket/35159
Thank you for your assistance!
Attachments (1)
Change History (3)
by , 7 days ago
Attachment: | django-dumpdata-bug.zip added |
---|
comment:1 by , 7 days ago
Description: | modified (diff) |
---|
comment:2 by , 7 days ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Summary: | dumpdata Command Fails on Model with Custom User Manager → Cannot use base managers of related models in dumpdata command |
Type: | Bug → New feature |
Hi Lorenzo
I don't think this is a bug but a new feature potentially. I think the issue can be roughly demonstrated like:
Then you run
dumpdata
forNewModel
with the--all
flag (https://docs.djangoproject.com/en/5.1/ref/django-admin/#cmdoption-dumpdata-all) but this means you use the base manager for that model, not all related modelsI think this use case is quite niche but feel free to propose it on the Forum and see if others agree this should be supported