How to edit django-allauth default templates? How to edit django-allauth default templates? django django

How to edit django-allauth default templates?


The correct answer can be found here: https://stackoverflow.com/a/31282443/4992248

  1. Create yourproject/templates/allauth/account/ and paste here all templates you need to edit from /myproject/Lib/site-packages/allauth/templates/account.

If you need to make changes for socialaccount templates, create also yourproject/templates/allauth/socialaccount/

  1. Edit 'DIRS' in settings.py like 'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'templates', 'allauth')],

In the end it should look somethink like this:

TEMPLATES = [    {        'BACKEND': 'django.template.backends.django.DjangoTemplates',        'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'templates', 'allauth')],        'APP_DIRS': True,        'OPTIONS': {            'debug': False,            'context_processors': [                'django.template.context_processors.debug',                'django.template.context_processors.request',                'django.template.context_processors.media',                'django.contrib.auth.context_processors.auth',                'django.contrib.messages.context_processors.messages',            ],        },    },]
  1. You never should do any code changes at /Lib/site-packages/*, because all changes are lost once a package is updated.


It seems that the documentation of the module is out of date. For Django 1.10 you should do the following:

  • download the module with pip
  • add the following to INSTALLED_APPS(/settings.py file)

'django.contrib.sites', # first place'allauth',  # after your modules declarations'allauth.account','allauth.socialaccount',
  • add the backends declarations and another stuff needed by allauth
AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend','allauth.account.auth_backends.AuthenticationBackend',)SITE_ID = 1ACCOUNT_EMAIL_REQUIRED = TrueACCOUNT_USERNAME_REQUIRED = True
  • seems that for django 1.10 is not needed to modify TEMPLATES section (django-allauth==0.28.0). You can verify the modules versions using the "pip freeze" command.

  • create an artificial module to override the templates; for example, my project is named irj_app and I've add a new application called _shared, then i have the following structure, and add it to INSTALLED_APPS before 'allauth' declarations :

irj_app / _shared

  • i've created a templates directory inside "_shared" folder and i've added a file called "base.html" that overrides the allauth template. what i'd found is that django-allauth creates a template that overrides the layout that you've made before, then you need to intercept the django-allauth templates to change this behavior. Also you can override any template of this authentication mechanism. For example i have:

irj_app / _shared / templates / base.html

irj_app / _shared / templates / account / base.html

irj_app / _shared / templates / account / signup.html

irj_app / _shared / templates / _shared / adminlte-template / ... (template for other modules)

hope it helps


Try This:

Create account directory in your app's template dir so that it looks like below

yourppname/templates/account

and files

yourppname/templates/account/login.html

yourppname/templates/account/signup.html

and add below to your TEMPLATE DIRS Remember to change yourappname to your app's name

os.path.join(BASE_DIR, 'yourappname', 'templates')

TEMPLATES = [{    'BACKEND': 'django.template.backends.django.DjangoTemplates',    'DIRS': [os.path.join(BASE_DIR, 'yourappname', 'templates')],    'APP_DIRS': True,    'OPTIONS': {        'context_processors': [            'django.template.context_processors.debug',            'django.template.context_processors.request',            'django.contrib.auth.context_processors.auth',            'django.contrib.messages.context_processors.messages',        ],    },},]