Django: ImproperlyConfigured: Pengaturan SECRET_KEY tidak boleh kosong


102

Saya mencoba menyiapkan beberapa file pengaturan (pengembangan, produksi, ..) yang menyertakan beberapa pengaturan dasar. Tidak bisa berhasil. Ketika saya mencoba menjalankan ./manage.py runserversaya mendapatkan kesalahan berikut:

(cb)clime@den /srv/www/cb $ ./manage.py runserver
ImproperlyConfigured: The SECRET_KEY setting must not be empty.

Ini adalah modul pengaturan saya:

(cb)clime@den /srv/www/cb/cb/settings $ ll
total 24
-rw-rw-r--. 1 clime clime 8230 Oct  2 02:56 base.py
-rw-rw-r--. 1 clime clime  489 Oct  2 03:09 development.py
-rw-rw-r--. 1 clime clime   24 Oct  2 02:34 __init__.py
-rw-rw-r--. 1 clime clime  471 Oct  2 02:51 production.py

Pengaturan dasar (berisi SECRET_KEY):

(cb)clime@den /srv/www/cb/cb/settings $ cat base.py:
# Django base settings for cb project.

import django.conf.global_settings as defaults

DEBUG = False
TEMPLATE_DEBUG = False

INTERNAL_IPS = ('127.0.0.1',)

ADMINS = (
    ('clime', 'clime7@gmail.com'),
)

MANAGERS = ADMINS

DATABASES = {
    'default': {
        #'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'cwu',                   # Or path to database file if using sqlite3.
        'USER': 'clime',                 # Not used with sqlite3.
        'PASSWORD': '',                  # Not used with sqlite3.
        'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}

# 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 = 'Europe/Prague'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us'

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = False

# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale.
USE_L10N = False # TODO: make this true and accustom date time input

DATE_INPUT_FORMATS = defaults.DATE_INPUT_FORMATS + ('%d %b %y', '%d %b, %y') # + ('25 Oct 13', '25 Oct, 13')

# If you set this to False, Django will not use timezone-aware datetimes.
USE_TZ = True

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = '/srv/www/cb/media'

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = '/media/'

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = '/srv/www/cb/static'

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)

# List of finder classes that know how to find static files in
# various locations.
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

# Make this unique, and don't share it with anybody.
SECRET_KEY = '8lu*6g0lg)9z!ba+a$ehk)xt)x%rxgb$i1&022shmi1jcgihb*'

# List of callables that know how to import templates from various sources.
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.request',
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'django.core.context_processors.static',
    'django.core.context_processors.tz',
    'django.contrib.messages.context_processors.messages',
    'web.context.inbox',
    'web.context.base',
    'web.context.main_search',
    'web.context.enums',
)

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'watson.middleware.SearchContextMiddleware',
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'middleware.UserMemberMiddleware',
    'middleware.ProfilerMiddleware',
    'middleware.VaryOnAcceptMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'cb.urls'

# Python dotted path to the WSGI application used by Django's runserver.
WSGI_APPLICATION = 'cb.wsgi.application'

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    '/srv/www/cb/web/templates',
    '/srv/www/cb/templates',
)

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'south',
    'grappelli', # must be before admin
    'django.contrib.admin',
    'django.contrib.admindocs',
    'endless_pagination',
    'debug_toolbar',
    'djangoratings',
    'watson',
    'web',
)

AUTH_USER_MODEL = 'web.User'

# A sample logging configuration. The only tangible logging
# performed by this configuration is to send an email to
# the site admins on every HTTP 500 error when DEBUG=False.
# See http://docs.djangoproject.com/en/dev/topics/logging for
# more details on how to customize your logging configuration.
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'formatters': {
        'standard': {
            'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt' : "%d/%b/%Y %H:%M:%S"
        },
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        },
        'null': {
            'level':'DEBUG',
            'class':'django.utils.log.NullHandler',
        },
        'logfile': {
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': "/srv/www/cb/logs/application.log",
            'maxBytes': 50000,
            'backupCount': 2,
            'formatter': 'standard',
        },
        'console':{
            'level':'INFO',
            'class':'logging.StreamHandler',
            'formatter': 'standard'
        },
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
        'django': {
            'handlers':['console'],
            'propagate': True,
            'level':'WARN',
        },
        'django.db.backends': {
            'handlers': ['console'],
            'level': 'DEBUG',
            'propagate': False,
        },
        'web': {
            'handlers': ['console', 'logfile'],
            'level': 'DEBUG',
        },
    },
}

LOGIN_URL = 'login'
LOGOUT_URL = 'logout'

#ENDLESS_PAGINATION_LOADING = """
#    <img src="/static/web/img/preloader.gif" alt="loading" style="margin:auto"/>
#"""
ENDLESS_PAGINATION_LOADING = """
    <div class="spinner small" style="margin:auto">
        <div class="block_1 spinner_block small"></div>
        <div class="block_2 spinner_block small"></div>
        <div class="block_3 spinner_block small"></div>
    </div>
"""

DEBUG_TOOLBAR_CONFIG = {
    'INTERCEPT_REDIRECTS': False,
}

import django.template.loader
django.template.loader.add_to_builtins('web.templatetags.cb_tags')
django.template.loader.add_to_builtins('web.templatetags.tag_library')

WATSON_POSTGRESQL_SEARCH_CONFIG = 'public.english_nostop'

Salah satu file pengaturan:

(cb)clime@den /srv/www/cb/cb/settings $ cat development.py 
from base import *

DEBUG = True
TEMPLATE_DEBUG = True

ALLOWED_HOSTS = ['127.0.0.1', '31.31.78.149']

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'cwu',
        'USER': 'clime',
        'PASSWORD': '',
        'HOST': '',
        'PORT': '',
    }
}

MEDIA_ROOT = '/srv/www/cb/media/'

STATIC_ROOT = '/srv/www/cb/static/'

TEMPLATE_DIRS = (
    '/srv/www/cb/web/templates',
    '/srv/www/cb/templates',
)

Kode dalam manage.py:

(cb)clime@den /srv/www/cb $ cat manage.py 
#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cb.settings.development")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

Jika saya menambahkan from base import *ke /srv/www/cb/cb/settings/__init__.py(yang jika tidak kosong), itu secara ajaib mulai bekerja tetapi saya tidak mengerti mengapa. Ada yang bisa menjelaskan padaku apa yang terjadi di sini? Itu pasti sihir modul python.

EDIT: Semuanya juga mulai berfungsi jika saya menghapus baris ini dari base.py

django.template.loader.add_to_builtins('web.templatetags.cb_tags')

Jika saya menghapus baris ini dari web.templatetags.cb_tags, itu juga mulai berfungsi:

from endless_pagination.templatetags import endless

Saya kira itu karena, pada akhirnya, itu mengarah ke

from django.conf import settings
PER_PAGE = getattr(settings, 'ENDLESS_PAGINATION_PER_PAGE', 10)

Jadi itu menciptakan beberapa hal melingkar yang aneh dan permainan berakhir.


Tepatnya, pada akhirnya Anda akan selalu membutuhkan pengaturan, meskipun itu dari django.conf
Guilherme David da Costa

2
Coba ubah DJANGO_SETTINGS_MODULE Anda ke settings.development
Guilherme David da Costa

Siapa pun yang menggunakan virutalenvwrapper mencoba jawaban penjahat di stackoverflow.com/questions/10738919/…
Lukeaus

Jawaban:


109

Saya mengalami kesalahan yang sama dan ternyata itu adalah ketergantungan melingkar antara modul atau kelas yang dimuat oleh pengaturan dan modul pengaturan itu sendiri. Dalam kasus saya itu adalah kelas middleware yang dinamai dalam pengaturan yang mencoba memuat pengaturan itu sendiri.


4
Ya, saya pikir sirkularitas melakukannya.
Clime

5
Refactor untuk menghindari ketergantungan melingkar. Solusi yang tepat sangat spesifik untuk kode Anda sendiri.
Sam Svenbjorgchristiensen

6
Petunjuk: untuk mengidentifikasi apa yang menyebabkan masalah, misalnya menambahkan pernyataan cetak acak di file pengaturan dan memindahkannya untuk melihat bagian mana yang rusak.
Felix Böhme

17
Saya tidak menemukan jawaban dengan ini.
Avinash Raj

8
Jawaban ini akan lebih berguna jika lebih spesifik ... dikatakan bahwa masalahnya adalah "sesuatu".
Hack-R

74

Saya mengalami masalah yang sama setelah merestrukturisasi pengaturan sesuai instruksi dari buku Daniel Greenfield Two scoops of Django .

Saya menyelesaikan masalah dengan pengaturan

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_name.settings.local")

dalam manage.pydan wsgi.py.

Memperbarui:

Dalam solusi di atas, localadalah nama file (pengaturan / local.py) di dalam folder pengaturan saya, yang menyimpan pengaturan untuk lingkungan lokal saya.

Cara lain untuk menyelesaikan masalah ini adalah menyimpan semua pengaturan umum Anda di dalam settings / base.py dan kemudian membuat 3 file pengaturan terpisah untuk lingkungan produksi, pementasan, dan dev.

Folder pengaturan Anda akan terlihat seperti:

settings/
    __init__.py
    base.py
    local.py
    prod.py
    stage.py

dan simpan kode berikut di settings/__init__.py

from .base import *

env_name = os.getenv('ENV_NAME', 'local')

if env_name == 'prod':
    from .prod import *
elif env_name == 'stage':
    from .stage import *
else:
    from .local import *

Untuk siapa pun yang menggunakan Wagtail di PythonAnywhere cukup tambahkan '.dev.' di akhir baris ini di WSGI ... os.environ ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings.dev' nanti Anda harus membuat local.py di luar repo sumber untuk kata sandi Anda, dll.
Inyoka

Harus menjadi jawaban teratas
Dev

ImportError: Tidak ada modul bernama lokal
Dheeraj M Pai

@Tessaracter menggunakan nama file pengaturan yang Anda gunakan sebagai ganti local. Dalam kasus saya, pengaturan lokal disimpan di pengaturan file / local.py
Jinesh

2
Ini melanggar konvensi Django, menggantikan yang didokumentasikan DJANGO_SETTINGS_MODULEdengan benar dengan variabel lingkungan kustom baru yang tidak didukung di luar kotak dan harus ditangani secara manual. Saya terkejut ini memiliki begitu banyak suara positif. Saya sedang mengerjakan proyek dengan penyiapan ini dan kami mengalami banyak masalah, mulai dari kesulitan dalam mengonfigurasi lingkungan yang terisolasi untuk pengembangan lokal hingga pustaka eksternal yang rusak karena mereka mengharapkan DJANGO_SETTINGS_MODULEpekerjaan seperti yang diharapkan dan ternyata tidak.
Ariel

21

Saya mengalami kesalahan yang sama dengan python manage.py runserver .

Bagi saya, ternyata itu karena file biner (.pyc) terkompilasi basi. Setelah menghapus semua file seperti itu dalam proyek saya, server mulai berjalan kembali. :)

Jadi jika Anda mendapatkan kesalahan ini, entah dari mana, yaitu tanpa membuat perubahan apa pun yang tampaknya terkait dengan pengaturan-django, ini bisa menjadi langkah pertama yang baik.


2
terima kasih atas tip ini. Saya memiliki masalah yang sama di server dev saya. Menghapus semua file .pyc dari folder proyek melakukan triknya. Saya sedang mengedit file settings.py sebelum ini terjadi.
buaya

15

Hapus file .pyc

Perintah terminal Ubuntu untuk menghapus .pyc: find . -name "*.pyc" -exec rm -rf {} \;

Saya mendapat kesalahan yang sama ketika saya melakukan python manage.py runserver. Itu karena file .pyc. Saya menghapus file .pyc dari direktori proyek kemudian berfungsi.


3
find . -type f -name *.pyc -deleteakan dilakukan
Srinivas Reddy Thatiparthy

8

Saya belum menentukan file pengaturan:

python manage.py runserver --settings=my_project.settings.develop

6

Ini mulai bekerja karena pada base.py Anda memiliki semua informasi yang diperlukan dalam file pengaturan dasar. Anda membutuhkan garis:

SECRET_KEY = '8lu*6g0lg)9z!ba+a$ehk)xt)x%rxgb$i1&amp;022shmi1jcgihb*'

Jadi itu berhasil dan ketika Anda melakukannya from base import *, itu mengimpor SECRET_KEY ke Anda development.py.

Anda harus selalu mengimpor pengaturan dasar sebelum melakukan pengaturan khusus.


EDIT: Juga, ketika django mengimpor pengembangan dari paket Anda, itu menginisialisasi semua variabel di dalam basis sejak Anda mendefinisikan from base import *di dalamnya__init__.py


maaf, saya tidak mengerti maksud Anda. Ada dari base import * di awal development.py dan tidak berfungsi.
clime

Oh maaf, saya ikut campur tanpa mempedulikan apa yang sebenarnya terjadi. Django masih mencoba untuk mengimpor pengaturan dari pengaturan alih-alih dari development.py anda karena nampaknya alasan bekerja ketika anda mengimpor basis di init .py
Guilherme David da Costa

5

Saya pikir itu adalah kesalahan Lingkungan , Anda harus mencoba mengatur:DJANGO_SETTINGS_MODULE='correctly_settings'


4

Saya memiliki masalah yang sama dengan Celery. Saya setting.py sebelumnya :

SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY')

setelah:

SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', <YOUR developing key>)

Jika variabel lingkungan tidak ditentukan maka: SECRET_KEY = kunci pengembangan ANDA


4

Di init .py dari direktori pengaturan tulis impor yang benar, seperti:

from Project.settings.base import *

Tidak perlu mengubah wsgi.py atau manage.py


Sempurna! Terima kasih.
Mayur

3

Saya memecahkan masalah ini yang terjadi pada OS X dengan Django 1.5 dan 1.6 dengan menonaktifkan semua sesi aktif ke virtualenv dan memulainya lagi.


2

Untuk membuang solusi potensial lain ke dalam campuran, saya memiliki settingsfolder dan juga settings.pydi direktori proyek saya. (Saya beralih kembali dari file pengaturan berbasis lingkungan ke satu file. Saya telah mempertimbangkan kembali.)

Python menjadi bingung apakah saya ingin mengimpor project/settings.pyatau project/settings/__init__.py. Saya menghapus settingsdir dan semuanya sekarang berfungsi dengan baik.


2

Untuk siapa pun yang menggunakan PyCharm: tombol hijau "Jalankan konfigurasi yang dipilih" akan menghasilkan kesalahan ini, namun menjalankan fungsi berikut:

py manage.py runserver 127.0.0.1:8000 --settings=app_name.settings.development

Untuk memperbaikinya, Anda perlu mengedit variabel lingkungan konfigurasi. Untuk melakukannya, klik menu tarik-turun "Pilih konfigurasi run / debug" di sebelah kiri tombol jalankan berwarna hijau, lalu klik "edit konfigurasi". Di bawah tab "lingkungan", ubah variabel lingkungan DJANGO_SETTINGS_MODULEmenjadiapp_name.settings.development .


1

Saya hanya ingin menambahkan bahwa saya mendapat kesalahan ini ketika nama database saya salah dieja di settings.pyfile saya sehingga DB tidak dapat dibuat.


1

Saya memecahkan masalah ini pada 1.8.4 dengan memperbaiki pengaturan TEMPLATES yang salah ketik (menghapus TEMPLATES ['debug'] menyelesaikannya)

Pergi ke pengaturan yang telah Anda ubah baru-baru ini, pastikan semua kunci berada di dekat buku.


0

Saya memecahkan masalah ini dengan menghapus spasi di sekitar tanda yang sama ( =) di .envfile saya .


0

Dalam kasus saya, masalahnya adalah - saya memiliki app_folderdan settings.pydi dalamnya. Kemudian saya memutuskan untuk Settings foldermasuk app_folder- dan itu membuat benturan dengan settings.py. Baru saja mengganti namanya Settings folder- dan semuanya bekerja.


0

Mac OS saya tidak suka karena tidak menemukan variabel env yang disetel di file pengaturan:

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = os.environ.get('MY_SERVER_ENV_VAR_NAME')

tetapi setelah menambahkan env var ke lingkungan pengembang Mac OS lokal saya, kesalahan tersebut menghilang:

export MY_SERVER_ENV_VAR_NAME ='fake dev security key that is longer than 50 characters.'

Dalam kasus saya, saya juga perlu menambahkan --settingsparam:

python3 manage.py check --deploy --settings myappname.settings.production

di mana production.py adalah file yang berisi pengaturan khusus produksi di dalam folder pengaturan.


0

Masalahnya bagi saya adalah memanggil get_text_noopiterable LANGUAGES.

Berubah

LANGUAGES = (
    ('en-gb', get_text_noop('British English')),
    ('fr', get_text_noop('French')),
)

untuk

from django.utils.translation import gettext_lazy as _

LANGUAGES = (
    ('en-gb', _('British English')),
    ('fr', _('French')),
)

di file pengaturan dasar menyelesaikan ImproperlyConfigured: The SECRET_KEY setting must not be emptypengecualian.


0

Saya memecahkan masalah di atas dengan mengomentari baris di my settings.py

SECRET_KEY=os.environ.get('SECRET_KEY')

SECRET_KEYdideklarasikan di ~/.bashrcfile saya (untuk pengguna linux Ubuntu)

Untuk tujuan pengembangan di mesin lokal saya, saya tidak menggunakan variabel evironmnet

SECRET_KEY = '(i9b4aes#h1)m3h_8jh^duxrdh$4pu8-q5vkba2yf$ptd1lev_'

baris di atas tidak memberikan kesalahan


0

Dalam kasus saya, saat menyiapkan tindakan Github, saya hanya lupa menambahkan variabel env ke file yml:

jobs:
  build:
    env:
     VAR1: 1
     VAR2: 5

0

Alasan mengapa ada begitu banyak jawaban berbeda adalah karena pengecualiannya mungkin tidak ada hubungannya dengan SECRET_KEY. Ini mungkin pengecualian sebelumnya yang sedang ditelan. Aktifkan debugging menggunakan DEBUG = True untuk melihat pengecualian yang sebenarnya.


0

Dalam kasus saya, setelah pencarian yang lama saya menemukan bahwa PyCharm dalam pengaturan Django Anda (Pengaturan> Bahasa & Kerangka kerja> Django) memiliki bidang file konfigurasi tidak ditentukan. Anda harus membuat bidang ini mengarah ke file pengaturan proyek Anda. Kemudian, Anda harus membuka setelan Run / Debug dan menghapus variabel lingkungan DJANGO_SETTINGS_MODULE = jalur yang ada.

Ini terjadi karena plugin Django di PyCharm memaksa konfigurasi kerangka kerja. Jadi tidak ada gunanya mengkonfigurasi os.environ.setdefault ('DJANGO_SETTINGS_MODULE', 'myapp.settings')


0

Impor base.py __init__.py sendiri. pastikan Anda tidak akan mengulangi konfigurasi yang sama lagi !.

mengatur variabel lingkungan SET DJANGO_DEVELOPMENT =dev

settings/
  __init__.py
  base.py
  local.py
  production.py

Di __init__.py

from .base import *
if os.environ.get('DJANGO_DEVELOPMENT')=='prod':
   from .production import *
else:
   from .local import *

Di base.pykonfigurasi konfigurasi global. kecuali untuk Database. Suka

SECRET_KEY, ALLOWED_HOSTS,INSTALLED_APPS,MIDDLEWARE .. etc....

Di local.py

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'database',
    'USER': 'postgres',
    'PASSWORD': 'password',
    'HOST': 'localhost',
    'PORT': '5432',
}
}

0

Saya datang ke sini untuk mencari jawaban karena saya menghadapi masalah yang sama, tidak ada jawaban di sini yang berhasil untuk saya. Kemudian setelah mencari di situs web lain saya menemukan perbaikan sederhana ini. Itu berhasil untuk saya

wsgi.py

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'yourProject.settings')

untuk

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'yourProject.settings.dev')
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.