mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2024-11-27 03:54:02 +03:00
96a4ae33b5
The status of the registration (open or closed) is now read from the project environment instead of hardcoded in the common settings file.
239 lines
8.8 KiB
Python
239 lines
8.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Django settings for {{cookiecutter.project_name}} project.
|
|
|
|
For more information on this file, see
|
|
https://docs.djangoproject.com/en/dev/topics/settings/
|
|
|
|
For the full list of settings and their values, see
|
|
https://docs.djangoproject.com/en/dev/ref/settings/
|
|
"""
|
|
from __future__ import absolute_import, unicode_literals
|
|
|
|
import environ
|
|
|
|
ROOT_DIR = environ.Path(__file__) - 3 # (/a/b/myfile.py - 3 = /)
|
|
APPS_DIR = ROOT_DIR.path('{{ cookiecutter.repo_name }}')
|
|
|
|
env = environ.Env()
|
|
|
|
# APP CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
DJANGO_APPS = (
|
|
# Default Django apps:
|
|
'django.contrib.auth',
|
|
'django.contrib.contenttypes',
|
|
'django.contrib.sessions',
|
|
'django.contrib.sites',
|
|
'django.contrib.messages',
|
|
'django.contrib.staticfiles',
|
|
|
|
# Useful template tags:
|
|
# 'django.contrib.humanize',
|
|
|
|
# Admin
|
|
'django.contrib.admin',
|
|
)
|
|
THIRD_PARTY_APPS = (
|
|
'crispy_forms', # Form layouts
|
|
'allauth', # registration
|
|
'allauth.account', # registration
|
|
'allauth.socialaccount', # registration
|
|
)
|
|
|
|
# Apps specific for this project go here.
|
|
LOCAL_APPS = (
|
|
'{{ cookiecutter.repo_name }}.users', # custom users app
|
|
# Your stuff: custom apps go here
|
|
)
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#installed-apps
|
|
INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS
|
|
|
|
# MIDDLEWARE CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
MIDDLEWARE_CLASSES = (
|
|
# Make sure djangosecure.middleware.SecurityMiddleware is listed first
|
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
|
'django.middleware.common.CommonMiddleware',
|
|
'django.middleware.csrf.CsrfViewMiddleware',
|
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
|
'django.contrib.messages.middleware.MessageMiddleware',
|
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
|
)
|
|
|
|
# MIGRATIONS CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
MIGRATION_MODULES = {
|
|
'sites': '{{ cookiecutter.repo_name }}.contrib.sites.migrations'
|
|
}
|
|
|
|
# DEBUG
|
|
# ------------------------------------------------------------------------------
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#debug
|
|
DEBUG = env.bool("DJANGO_DEBUG", False)
|
|
|
|
# FIXTURE CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-FIXTURE_DIRS
|
|
FIXTURE_DIRS = (
|
|
str(APPS_DIR.path('fixtures')),
|
|
)
|
|
|
|
# EMAIL CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
EMAIL_BACKEND = env('DJANGO_EMAIL_BACKEND', default='django.core.mail.backends.smtp.EmailBackend')
|
|
|
|
# MANAGER CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#admins
|
|
ADMINS = (
|
|
("""{{cookiecutter.author_name}}""", '{{cookiecutter.email}}'),
|
|
)
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#managers
|
|
MANAGERS = ADMINS
|
|
|
|
# DATABASE CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#databases
|
|
DATABASES = {
|
|
# Raises ImproperlyConfigured exception if DATABASE_URL not in os.environ
|
|
'default': env.db("DATABASE_URL", default="postgres://{% if cookiecutter.windows == 'y' %}localhost{% endif %}/{{cookiecutter.repo_name}}"),
|
|
}
|
|
DATABASES['default']['ATOMIC_REQUESTS'] = True
|
|
|
|
|
|
# GENERAL CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
# Local time zone for this installation. Choices can be found here:
|
|
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
|
|
# although not all choices may be available on all operating systems.
|
|
# In a Windows environment this must be set to your system time zone.
|
|
TIME_ZONE = '{{ cookiecutter.timezone }}'
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#language-code
|
|
LANGUAGE_CODE = 'en-us'
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#site-id
|
|
SITE_ID = 1
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#use-i18n
|
|
USE_I18N = True
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#use-l10n
|
|
USE_L10N = True
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#use-tz
|
|
USE_TZ = True
|
|
|
|
# TEMPLATE CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#templates
|
|
TEMPLATES = [
|
|
{
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-TEMPLATES-BACKEND
|
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#template-dirs
|
|
'DIRS': [
|
|
str(APPS_DIR.path('templates')),
|
|
],
|
|
'OPTIONS': {
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#template-debug
|
|
'debug': DEBUG,
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#template-loaders
|
|
# https://docs.djangoproject.com/en/dev/ref/templates/api/#loader-types
|
|
'loaders': [
|
|
'django.template.loaders.filesystem.Loader',
|
|
'django.template.loaders.app_directories.Loader',
|
|
],
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#template-context-processors
|
|
'context_processors': [
|
|
'django.template.context_processors.debug',
|
|
'django.template.context_processors.request',
|
|
'django.contrib.auth.context_processors.auth',
|
|
'django.template.context_processors.i18n',
|
|
'django.template.context_processors.media',
|
|
'django.template.context_processors.static',
|
|
'django.template.context_processors.tz',
|
|
'django.contrib.messages.context_processors.messages',
|
|
# Your stuff: custom template context processors go here
|
|
],
|
|
},
|
|
},
|
|
]
|
|
|
|
# See: http://django-crispy-forms.readthedocs.org/en/latest/install.html#template-packs
|
|
CRISPY_TEMPLATE_PACK = 'bootstrap3'
|
|
|
|
# STATIC FILE CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#static-root
|
|
STATIC_ROOT = str(ROOT_DIR('staticfiles'))
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#static-url
|
|
STATIC_URL = '/static/'
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#std:setting-STATICFILES_DIRS
|
|
STATICFILES_DIRS = (
|
|
str(APPS_DIR.path('static')),
|
|
)
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#staticfiles-finders
|
|
STATICFILES_FINDERS = (
|
|
'django.contrib.staticfiles.finders.FileSystemFinder',
|
|
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
|
)
|
|
|
|
# MEDIA CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#media-root
|
|
MEDIA_ROOT = str(APPS_DIR('media'))
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#media-url
|
|
MEDIA_URL = '/media/'
|
|
|
|
# URL Configuration
|
|
# ------------------------------------------------------------------------------
|
|
ROOT_URLCONF = 'config.urls'
|
|
|
|
# See: https://docs.djangoproject.com/en/dev/ref/settings/#wsgi-application
|
|
WSGI_APPLICATION = 'config.wsgi.application'
|
|
|
|
# AUTHENTICATION CONFIGURATION
|
|
# ------------------------------------------------------------------------------
|
|
AUTHENTICATION_BACKENDS = (
|
|
'django.contrib.auth.backends.ModelBackend',
|
|
'allauth.account.auth_backends.AuthenticationBackend',
|
|
)
|
|
|
|
# Some really nice defaults
|
|
ACCOUNT_AUTHENTICATION_METHOD = 'username'
|
|
ACCOUNT_EMAIL_REQUIRED = True
|
|
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
|
|
ACCOUNT_ADAPTER = '{{cookiecutter.repo_name}}.users.adapter.AccountAdapter'
|
|
SOCIALACCOUNT_ADAPTER = '{{cookiecutter.repo_name}}.users.adapter.SocialAccountAdapter'
|
|
ACCOUNT_ALLOW_REGISTRATION = env.bool("DJANGO_ACCOUNT_ALLOW_REGISTRATION", True)
|
|
|
|
# Custom user app defaults
|
|
# Select the correct user model
|
|
AUTH_USER_MODEL = 'users.User'
|
|
LOGIN_REDIRECT_URL = 'users:redirect'
|
|
LOGIN_URL = 'account_login'
|
|
|
|
# SLUGLIFIER
|
|
AUTOSLUG_SLUGIFY_FUNCTION = 'slugify.slugify'
|
|
{% if cookiecutter.use_celery == "y" %}
|
|
########## CELERY
|
|
INSTALLED_APPS += ('{{cookiecutter.repo_name}}.taskapp.celery.CeleryConfig',)
|
|
# if you are not using the django database broker (e.g. rabbitmq, redis, memcached), you can remove the next line.
|
|
INSTALLED_APPS += ('kombu.transport.django',)
|
|
BROKER_URL = env("CELERY_BROKER_URL", default='django://')
|
|
########## END CELERY
|
|
{% endif %}
|
|
|
|
# Location of root django.contrib.admin URL, use {% raw %}{% url 'admin:index' %}{% endraw %}
|
|
ADMIN_URL = r'^admin/'
|
|
|
|
# Your common stuff: Below this line define 3rd party library settings
|