Opened 6 years ago

Closed 6 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

Change History (1)

comment:1 by Tim Graham, 6 years ago

Resolution: invalid
Status: newclosed

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).

Note: See TracTickets for help on using tickets.
Back to Top