Django contrib.auth.models.User с движком Django MongoDB

Можете ли вы использовать contrib.auth.models.User или любой из contrib.auth вместе с Django MongoDB Engine ?

У меня есть MongoDB Engine, настроенный в соответствии с указаниями и отлично работающий для пользовательских моделей, но:

from django.contrib.auth.models import User
a = User.objects.create_user(username='foo', email='[email protected]',
                             password='foo123bar')
a.save()
    ...
    ERROR: An unexpected error occurred while tokenizing input
    The following traceback may be corrupted or invalid
    The error message is: ('EOF in multi-line statement', (5, 0))
    ...

    ValueError: invalid literal for int() with base 10: '4f3757d4eb60261dae000001'

Есть ли способ использовать обычные модели пользователей и систему аутентификации, или мне теперь нужно реализовать свои собственные?

Если в настоящее время он не поддерживается или является неизведанной территорией, может ли быть способ, которым пользователи хранятся в mysql, а все мои модели движка mongodb хранятся в MongoDB?


person Purrell    schedule 12.02.2012    source источник
comment
@Purell Джонас является автором django-mongodb, поэтому следуйте его инструкциям :) Причина этой ошибки в том, что Django (vanilla) имеет первичный ключ как int, который был исправлен в патче django nonrel и преобразован в строку. В вашем случае Django пытается преобразовать идентификатор объекта mongodb «4f3757d4eb60261dae000001» в int, что вызывает проблему.   -  person Gagandeep Singh    schedule 12.02.2012


Ответы (1)


Вы можете использовать всю систему аутентификации, кроме всего, что требует JOIN (группы, разрешения).

Похоже, вы импортируете неправильную версию Django (не Django-nonrel, а Django "vanilla"). Убедитесь, что в виртуальном окружении, в котором вы работаете, установлен только Django-nonrel, чтобы импорт не мог перейти в неправильный каталог.

Если это не решит ваши проблемы, полная трассировка будет очень полезна.

person Jonas H.    schedule 12.02.2012