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
- settings
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
Post a Comment