Sunday, April 15, 2018

Re: Proxy User and AUTH_USER_MODEL: TypeError: MyUser cannot proxy the swapped model 'myapp.MyUser'.

The behavior seems expected. https://docs.djangoproject.com/en/dev/topics/auth/customizing/#custom-users-and-proxy-models

It looks like if you use a proxy model, then you should import it where needed rather than use AUTH_USER_MODEL.

On Saturday, April 14, 2018 at 6:34:59 PM UTC-4, Nicolas Pantel wrote:
Hi,

I need help on the topic: Proxy for User model referenced as AUTH_USER_MODEL.

As stated in the doc, needing to add some methods to User model, I tried to make a 'proxy' model.

I made a 'from scratch app', with only a MyUser(User) model, and AUTH_USER_MODEL = 'myapp.MyUser' in settings.py
MyUser has only 'class Meta: proxy = True'

On a ./manage.py shell (for example), I have the following traceback:

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

Anybody already tried to use proxy on User model?

Thanks,
Nicolas Pantel

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/1567fa85-dfe0-4a93-9a5e-75f4f3881c18%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment