Настройка django-userena - PullRequest
       4

Настройка django-userena

10 голосов
/ 25 июля 2011

для моего нового проекта я решил использовать django-userena

Я следовал инструкциям userena docs . Однако я получаю эту ошибку:

SiteProfileNotAvailable at / account / signin /

Без исключения предоставлено

и не знаю как это исправить. Пожалуйста, помогите!

Ответы [ 3 ]

13 голосов
/ 25 июля 2011

Обычно вы получаете SiteProfileNotAvailable, когда Django не может найти ваш профиль. Как указано в « Хранении дополнительной информации о пользователях », вам необходимо определить AUTH_PROFILE_MODULE, чтобы указать модель вашего профиля.

7 голосов
/ 01 октября 2012

Как удачно указал wunki, важно определить AUTH_PROFILE_MODULE в вашем файле settings.py, чтобы он указывал на ваш подкласс UserenaBaseProfile или UserenaLanguageBaseProfile. Как уже говорилось в руководстве пользователя userena, они обычно помещаются в файл models.py вашего недавно созданного проекта «account».

Однако я обнаружил, что python manage.py runserver не удастся, если вы уже предоставили AUTH_PROFILE_MODULE. Если вы указали AUTH_PROFILE_MODULE и по-прежнему получаете сообщение об ошибке SiteProfileNotAvailable (для каждого URL-адреса вашего приложения), возможно, вам не удалось добавить «учетные записи» в список INSTALLED_APPS в файле settings.py.

4 голосов
/ 05 августа 2013

Попробуйте следующий шаг:

  1. В вашем файле settings.py добавьте «userena», «guardian», «easy_thumbnails» к вашему кортежу INSTALLED_APPS.

  2. Затем снова в вашем файле settings.py добавьте следующее:

    AUTHENTICATION_BACKENDS = (  
        'userena.backends.UserenaAuthenticationBackend',  
        'guardian.backends.ObjectPermissionBackend',  
        'django.contrib.auth.backends.ModelBackend',  
    )  
    
    ANONYMOUS_USER_ID = -1  
    

Вышеуказанное используется для работы django-guardian (еще одна зависимость Django-Userena, которая автоматически устанавливается для управления разрешениями)

  1. Затем создайте новое приложение для вашего приложения Django-Userena. В командной строке введите: python manage.py startapp accounts. Мы создаем новое приложение для Django-Userena под названием «учетные записи».

  2. Теперь добавьте accounts к вашему кортежу INSTALLED_APPS в вашем файле settings.py.

  3. Скопируйте следующее в account / models.py:

    from django.contrib.auth.models import User  
    from django.utils.translation import ugettext as _  
    from userena.models import UserenaBaseProfile  
    
    class MyProfile(UserenaBaseProfile):  
        user = models.OneToOneField(User,unique=True,  
                      verbose_name=_('user'),related_name='my_profile')  
        favourite_snack = models.CharField(_('favouritesnack'),max_length=5)  
    
  4. Затем добавьте следующее в файл settings.py:

    AUTH_PROFILE_MODULE = 'accounts.MyProfile'  
    
    LOGIN_REDIRECT_URL = '/accounts/%(username)s/'  
    LOGIN_URL = '/accounts/signin/'  
    LOGOUT_URL = '/accounts/signout/'  
    

«account.MyProfile» в AUTH_PROFILE_MODULE относится к «учетным записям» приложения, содержащим класс модели MyProfile, как мы определили ранее. 3 оператора URL входа / выхода указывают Django, где должны быть URL для работы Django-Userena.

  1. Добавьте следующее в urls.py под кортежем 'urlpatterns':

    (r'^accounts/', include('userena.urls')),  
    
  2. Настройте параметры электронной почты Django SMTP для использования Gmail в settings.py:

    EMAIL_USE_TLS = True  
    EMAIL_HOST = 'smtp.gmail.com'  
    EMAIL_PORT = 587  
    EMAIL_HOST_USER = 'yourgmailaccount@gmail.com'  
    EMAIL_HOST_PASSWORD = 'yourgmailpassword'  
    
    1. Перейдите в командную строку и введите:

      python manage.py check_permissions

Выполнить / счета / войти /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...