In Django rest framework , on using custom models, what value I need to give to AUTH_USER_MODEL? -


in django rest framework, have different models inside model folder -

settings.py

installed_apps = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'bootstrap3', 'rest_framework', 'myapp', ]   auth_user_model = 'myapp.models.usermodel.user' 
  • myapp
    • settings
      • dev.py
    • models
      • usermodels.py
      • ordermodels.py
      • reportingmodels.py

usermodels.py

class user(abstractbaseuser, guardianusermixin ,permissionsmixin):  id = models.autofield(_('id'),unique=true,primary_key=true) email = models.emailfield(_('email address'),unique=true) last_name = models.charfield(_('last name'), max_length=100, blank=true) first_name = models.charfield(_('first name'), max_length=100, blank=true) parent_id = models.integerfield(_('parent id'), default=0) organization_id = models.integerfield(_('organization id'), default=0, null=true) created_at = models.datetimefield(_('date joined '), default=timezone.now()) updated_at = models.datetimefield(_('date modified '), default=timezone.now()) incorrect_login = models.integerfield(_('incorrect login frequency'), default=0) soft_delete = models.booleanfield(_('soft delete'), default=false, ) group = models.foreignkey('auth.group', null=true)  username_field = 'email' required_fields = ['last_name, first_name, email,organization_id,group_id ']  class meta:     app_label = 'zeocuser'     db_table = 'zeocuser_zeocuser'     permissions = (         (             ('add_user_admin', 'add user admin'),         )     )   objects = usermanager() 

now, in settings.py auth_user_model if give value following - auth_user_model = 'myapp.models.usermodel.user' doesn't accept , give following error -

file "<frozen importlib._bootstrap>", line 986, in _gcd_import   file "<frozen importlib._bootstrap>", line 969, in _find_and_load   file "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked   file "<frozen importlib._bootstrap>", line 673, in _load_unlocked   file "<frozen importlib._bootstrap_external>", line 662, in exec_module   file "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed   file "/users/richagupta/virtualenvs/py35/lib/python3.5/site-packages/django/contrib/admin/models.py", line 32, in <module>     class logentry(models.model):   file "/users/richagupta/virtualenvs/py35/lib/python3.5/site-packages/django/db/models/base.py", line 158, in __new__     new_class.add_to_class(obj_name, obj)   file "/users/richagupta/virtualenvs/py35/lib/python3.5/site-packages/django/db/models/base.py", line 299, in add_to_class     value.contribute_to_class(cls, name)   file "/users/richagupta/virtualenvs/py35/lib/python3.5/site-packages/django/db/models/fields/related.py", line 706, in contribute_to_class     super(foreignobject, self).contribute_to_class(cls, name, virtual_only=virtual_only)   file "/users/richagupta/virtualenvs/py35/lib/python3.5/site-packages/django/db/models/fields/related.py", line 306, in contribute_to_class     lazy_related_operation(resolve_related_class, cls, self.remote_field.model, field=self)   file "/users/richagupta/virtualenvs/py35/lib/python3.5/site-packages/django/db/models/fields/related.py", line 86, in lazy_related_operation     return apps.lazy_model_operation(partial(function, **kwargs), *model_keys)   file "/users/richagupta/virtualenvs/py35/lib/python3.5/site-packages/django/db/models/fields/related.py", line 84, in <genexpr>     model_keys = (make_model_tuple(m) m in models)   file "/users/richagupta/virtualenvs/py35/lib/python3.5/site-packages/django/db/models/utils.py", line 13, in make_model_tuple     app_label, model_name = model.split(".") valueerror: many values unpack (expected 2) 

but if put user model directly inside app in models.py file (without putting in models folder) , give

auth_user_model = 'myapp.user' 

it works fine. in case, how should organise other model classes. kindly suggest .

django expects models located in .models namespace.

as it's mentioned in point 2 @ https://docs.djangoproject.com/en/1.9/ref/applications/#how-applications-are-loaded:

you must define or import models in application’s models.py or models/init.py. otherwise, application registry may not populated @ point, cause orm malfunction.

in case, you'll need import models in myapp/models/__init__.py file:

from .usermodels import user, <other models> .ordermodels import <other models> .reportingmodels import <other models> 

and on


Comments