Django 用 userena 做用户注册验证登陆

时间:2022-11-18 23:46:19
django-admin startproject userena2 cd userena2
python manage.py startapp accounts
vim userena2/settings.py
INSTALLED_APPS = (
    'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', 'userena', 'guardian', 'easy_thumbnails', 'accounts', ) AUTHENTICATION_BACKENDS = ( 'userena.backends.UserenaAuthenticationBackend', 'guardian.backends.ObjectPermissionBackend', 'django.contrib.auth.backends.ModelBackend', ) ANONYMOUS_USER_ID=-1 AUTH_PROFILE_MODULE = 'accounts.MyProfile' LOGIN_REDIRECT_URL = '/accounts/%(username)s/'

#login/logout URL statements tell Django where to have the URLs for Django-Userena to work LOGIN_URL = '/accounts/signin/' LOGOUT_URL = '/accounts/signout/'

#settings.py add the modul 'django.contrib.sites', must set the SITE_ID
SITE_ID = 1
vim accounts/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(_('favourite snack'),max_length=5)  
vim userena2/urls.py #加入 
  url(r'^accounts/', include('userena.urls')),  
vim userena2/settings.py #加入 EMAIL 发送参数
    EMAIL_USE_TLS = True  
    EMAIL_HOST = 'smtp.gmail.com'  
    EMAIL_PORT = 587  
    EMAIL_HOST_USER = 'yourgmailaccount@gmail.com'  
    EMAIL_HOST_PASSWORD = 'yourgmailpassword'  
python manage.py makemigrations python manage.py migrate python manage.py check_permissions

http://localhost:8000/accounts/signup