jschrewe / django-mongoadmin

Integrates mongodb into django's admin
http://www.schafproductions.com/projects/mongo-admin/
BSD 3-Clause "New" or "Revised" License
112 stars 38 forks source link

AttributeError: 'module' object has no attribute 'User' #29

Open maxicecilia opened 10 years ago

maxicecilia commented 10 years ago

Hi, I'm trying to add mongoadmin to my app, and fails trying to import the User model.

This is my setup:

pip freeze

Django==1.6.1
mongoadmin==0.2
mongodbforms==0.3
mongoengine==0.8.6
pymongo==2.6.3
...

settings.py:

INSTALLED_APPS = (
    'django.contrib.auth',
    'mongoengine.django.mongo_auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mongodbforms',  # https://github.com/jschrewe/django-mongodbforms
    'mongoadmin',  # https://github.com/jschrewe/django-mongoadmin
    'django.contrib.admin',
    ...
)

AUTH_USER_MODEL = 'mongo_auth.MongoUser'
MONGOADMIN_OVERRIDE_ADMIN = True

# mongoengine auth config.
AUTHENTICATION_BACKENDS = (
    'mongoengine.django.auth.MongoEngineBackend',
)

# mongoengine session config.
SESSION_ENGINE = 'mongoengine.django.sessions'
SESSION_SERIALIZER = 'mongoengine.django.sessions.BSONSerializer'

If I remove mongoadmin from INSTALLED_APPS everything run OK, else I get this stacktrace:

Traceback (most recent call last):
  File "manage.py", line 26, in <module>
    execute_from_command_line(sys.argv)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
    utility.execute()
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/core/management/base.py", line 242, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/core/management/base.py", line 280, in execute
    translation.activate('en-us')
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/utils/translation/__init__.py", line 130, in activate
    return _trans.activate(language)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 188, in activate
    _active.value = translation(language)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 177, in translation
    default_translation = _fetch(settings.LANGUAGE_CODE)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/utils/translation/trans_real.py", line 159, in _fetch
    app = import_module(appname)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/mongoadmin/__init__.py", line 1, in <module>
    from .options import *
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/mongoadmin/options.py", line 6, in <module>
    from mongoadmin.contenttypes.models import ContentType
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/mongoadmin/contenttypes/models.py", line 9, in <module>
    from mongoengine.django.auth import ContentType
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/mongoengine/django/auth.py", line 12, in <module>
    from .mongo_auth.models import get_user_document
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/mongoengine/django/mongo_auth/models.py", line 96, in <module>
    class MongoUser(models.Model):
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/db/models/base.py", line 144, in __new__
    new_class.add_to_class(obj_name, obj)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/django/db/models/base.py", line 264, in add_to_class
    value.contribute_to_class(cls, name)
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/mongoengine/django/mongo_auth/models.py", line 66, in contribute_to_class
    self.model = get_user_document()
  File "/home/maxicecilia/.virtualenvs/dnd-tools/local/lib/python2.7/site-packages/mongoengine/django/mongo_auth/models.py", line 29, in get_user_document
    return getattr(module, name[dot + 1:])
AttributeError: 'module' object has no attribute 'User'

Any ideas? Thanks!