Opened 8 years ago
Closed 8 years ago
#29328 closed Bug (invalid)
Proxy for User model referenced as AUTH_USER_MODEL
| Reported by: | Nicolas Pantel | Owned by: | nobody |
|---|---|---|---|
| Component: | contrib.auth | Version: | 2.0 |
| Severity: | Normal | Keywords: | model proxy |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
As stated in the doc, needing to add some methods to User model, I tried to make a 'proxy' model.
settings.py:
AUTH_USER_MODEL = "myapp.MyMuser"
myapp/models.py:
from django.contrib.auth.models import User
class MyUser(User):
class Meta:
proxy = True
But on server launch, the following error is triggered:
Traceback (most recent call last):
File "./manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 363, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 337, in execute
django.setup()
File "/usr/local/lib/python3.6/dist-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python3.6/dist-packages/django/apps/registry.py", line 108, in populate
app_config.import_models()
File "/usr/local/lib/python3.6/dist-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "/home/npantel/proxy_user/proxy_user/models.py", line 4, in <module>
class MyUser(User):
File "/usr/local/lib/python3.6/dist-packages/django/db/models/base.py", line 158, in __new__
raise TypeError("%s cannot proxy the swapped model '%s'." % (name, base_meta.swapped))
TypeError: MyUser cannot proxy the swapped model 'proxy_user.MyUser'.
Is it a bug or a misunderstanding?
Thanks,
Nicolas Pantel
Note:
See TracTickets
for help on using tickets.
As documented, the behavior seems expected. Your post on django-users, is the correct place to ask "is it a bug?" questions (see TicketClosingReasons/UseSupportChannels).