জ্যাঙ্গো: যথাযথ কনফিগার করা: SECRET_KEY সেটিংসটি খালি থাকতে হবে না


106

আমি কয়েকটি বেস সেটিংস অন্তর্ভুক্ত একাধিক সেটিং ফাইল (বিকাশ, উত্পাদন, ..) সেট আপ করার চেষ্টা করছি। যদিও সফল হতে পারে না। আমি যখন চালানোর চেষ্টা করি তখন আমি ./manage.py runserverনিম্নলিখিত ত্রুটিটি পেয়ে যাচ্ছি:

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

এখানে আমার সেটিংস মডিউল:

(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

বেস সেটিংস (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'

সেটিং ফাইলগুলির মধ্যে একটি:

(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',
)

কোড এতে 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)

যদি আমি যোগ from base import *মধ্যে /srv/www/cb/cb/settings/__init__.py(যা অন্যথায় খালি), এটা জাদুর কাজ শুরু কিন্তু আমি কেন বুঝতে পারছি না। কেউ আমাকে বোঝাতে পারে এখানে কী চলছে? এটি কিছু অজগর মডিউল যাদু হতে হবে।

সম্পাদনা: আমি বেস.পি থেকে এই লাইনটি সরিয়ে দিলে সবকিছুও কাজ শুরু করে

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

যদি আমি এই লাইনটি ওয়েব.টেমপ্লেট্যাগগুলি.সিবি_টি্যাগগুলি থেকে সরিয়ে ফেলি তবে এটি কাজ করা শুরু করে:

from endless_pagination.templatetags import endless

আমার ধারণা এটি শেষ কারণ, এটি বাড়ে

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

সুতরাং এটি কিছু অদ্ভুত বৃত্তাকার স্টাফ এবং গেমটি তৈরি করে।


ঠিক ঠিক, শেষ পর্যন্ত আপনার সর্বদা সেটিংসের প্রয়োজন হবে, যদিও তা জ্যাঙ্গো কোডফ থেকে হয়
ডেভিড দা কোস্টা

4
Settings.development আপনার DJANGO_SETTINGS_MODULE পরিবর্তন করার চেষ্টা করুন
Guilherme ডেভিড Da Costa

এ চেষ্টা crimeminister এর উত্তর virutalenvwrapper ব্যবহার করা যে কারও stackoverflow.com/questions/10738919/...
lukeaus

আপনি যদি পাইচার্ম বা উইং আইডিই ব্যবহার করেন তবে নীচের উত্তরগুলি দেখুন।
didierCH

উত্তর:


113

আমারও একই ত্রুটি ছিল এবং সেটি সেটিংস এবং সেটিংস মডিউল নিজেই লোড হওয়া মডিউল বা শ্রেণীর মধ্যে একটি বিজ্ঞপ্তি নির্ভরতা হতে পারে। আমার ক্ষেত্রে এটি একটি মিডওয়্যারের শ্রেণি ছিল যা সেটিংসে নামকরণ করা হয়েছিল যা নিজে সেটিংস লোড করার চেষ্টা করেছিল।


4
হ্যাঁ, আমি মনে করি বিজ্ঞপ্তিটি এটি করে।
ক্লাইমে

5
বিজ্ঞপ্তি নির্ভরতা এড়াতে রিফ্যাক্টর। সঠিক সমাধানটি আপনার নিজের কোডের সাথে মোটামুটি নির্দিষ্ট।
স্যাম সুইভেনজোরগ্রিস্টিয়েনসেনসেন

6
ইঙ্গিত: সমস্যাটি কী কারণে ঘটছে তা সনাক্ত করার জন্য, উদাহরণস্বরূপ সেটিংস ফাইলটিতে একটি এলোমেলো মুদ্রণ বিবৃতি যুক্ত করুন এবং এটি কোথায় ব্রেক হয়েছে তা দেখার জন্য এটিকে চারদিকে সরান।
ফেলিক্স বুহমে

18
আমি এর সাথে একটি উত্তর পাই না।
অবিনাশ রাজ

8
এই উত্তরটি আরও সুনির্দিষ্ট হলে আরও কার্যকর হবে ... এটি বলে যে সমস্যাটি "কিছু"।
হ্যাক-আর

75

ড্যানিয়েল গ্রিনফিল্ডের জাজানোর দুটি স্কুপস বইয়ের নির্দেশনা অনুসারে সেটিংস পুনর্গঠনের পরে আমি একই সমস্যায় পড়েছি ।

আমি সেট করে বিষয়টি সমাধান করেছি

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

ইন manage.pyএবং wsgi.py

হালনাগাদ:

উপরের সমাধানটিতে, localআমার সেটিংস ফোল্ডারের ভিতরে ফাইলের নাম (সেটিংস / লোকালপিপি) রয়েছে যা আমার স্থানীয় পরিবেশের জন্য সেটিংস ধারণ করে।

এই সমস্যাটি সমাধানের আর একটি উপায় হ'ল আপনার সমস্ত সাধারণ সেটিংস সেটিংস / বেস.পি এর ভিতরে রাখা এবং তারপরে আপনার উত্পাদন, মঞ্চায়ন এবং দেব পরিবেশের জন্য 3 টি পৃথক সেটিংস ফাইল তৈরি করা।

আপনার সেটিংস ফোল্ডারটি দেখতে পাবেন:

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

এবং নিম্নলিখিত কোডটি আপনার মধ্যে রাখুন 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 *

যে কোনও জায়গায় পাইথন-এ ওয়াগটাইল ব্যবহারের জন্য কেবল '.দেব' যুক্ত করুন। ডাব্লুএসজিআইতে এই লাইনটির শেষে ... os.en পরিবেশ ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings.dev' পরে আপনার পাসওয়ার্ড ইত্যাদির জন্য আপনার উত্স রেপোর বাইরে একটি স্থানীয়.পি তৈরি করতে হবে
ইনায়োকা

শীর্ষ উত্তর হওয়া উচিত
দেব

আমদানি ত্রুটি: স্থানীয় নামে কোনও মডিউল নেই
ধীরজ এম পাই

@ টেসারাক্টার আপনি যে সেটিংস ফাইলটি ব্যবহার করেন তার পরিবর্তে নাম ব্যবহার করুন local। আমার ক্ষেত্রে, স্থানীয় সেটিংস ফাইল সেটিংস / লোকাল.পি
তে

4
এটি জ্যাঙ্গো কনভেনশনগুলি লঙ্ঘন করে, সঠিকভাবে নথিভুক্ত DJANGO_SETTINGS_MODULEকরে একটি নতুন কাস্টম এনভায়রনমেন্ট ভেরিয়েবলের পরিবর্তে যা বাক্সের বাইরে সমর্থিত নয় এবং ম্যানুয়ালি মোকাবেলা করতে হবে। আমি বিস্মিত এই অনেক upvotes আছে। আমি এই সেটআপটি নিয়ে একটি প্রকল্পে কাজ করছি এবং স্থানীয় বিকাশের জন্য একটি বিচ্ছিন্ন পরিবেশ কনফিগার করতে অসুবিধা থেকে শুরু করে বাইরের লাইব্রেরি ভাঙ্গা পর্যন্ত তারা প্রচুর সমস্যা নিয়ে চলেছি কারণ তারা প্রত্যাশা অনুযায়ী DJANGO_SETTINGS_MODULEকাজ করার প্রত্যাশা করে এবং তা হয় না।
এরিয়েল

21

আমি একই ভুল ছিল python manage.py runserver

আমার জন্য, এটি প্রমাণিত হয়েছে যে এটি একটি বাসি সংকলিত বাইনারি (.pyc) ফাইলের কারণে। আমার প্রকল্পে এই জাতীয় সমস্ত ফাইল মুছে ফেলার পরে, সার্ভার আবার চলমান শুরু করে। :)

সুতরাং আপনি যদি এই ত্রুটিটি কোথাও না পেয়ে, অর্থাত্ জ্যাঙ্গো-সেটিংসের সাথে আপাতদৃষ্টিতে সম্পর্কিত কোনও পরিবর্তন না করেই পান তবে এটি প্রথম প্রথম ব্যবস্থা হতে পারে।


4
এই টিপ জন্য ধন্যবাদ। আমার ডেভ সার্ভারে আমার অভিন্ন সমস্যা ছিল। প্রকল্প ফোল্ডার থেকে সমস্ত .pyc ফাইলগুলি মুছে ফেলা কৌশলটি কার্যকর করে। আমি এই ঘটনার ঠিক আগে সেটিংস.পি ফাইল সম্পাদনা করছি।
ক্রোক

16

.Pyc ফাইলগুলি সরান

.Pyc মুছে ফেলার জন্য উবুন্টু টার্মিনাল কমান্ড: find . -name "*.pyc" -exec rm -rf {} \;

পাইথন ম্যানেজ.পি রানসরভার করার সময় আমি একই ত্রুটি পেয়েছি। এটি ছিল কারণ .pyc ফাইল। আমি প্রকল্পের ডিরেক্টরি থেকে .pyc ফাইলটি মুছলাম তখন এটি কাজ করছে।


4
find . -type f -name *.pyc -deleteকরবে
শ্রীনিবাস রেড্ডি থাটিপার্থি


6

এটি কাজ শুরু করে কারণ বেস.পিএতে আপনার একটি বেসিক সেটিংস ফাইলে প্রয়োজনীয় সমস্ত তথ্য রয়েছে। আপনার লাইনটি দরকার:

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

সুতরাং এটি কাজ করে এবং আপনি যখন করেন from base import *, এটি আপনার মধ্যে SECRET_KEY আমদানি করে development.py

যে কোনও কাস্টম সেটিংস করার আগে আপনার সর্বদা বেসিক সেটিংস আমদানি করা উচিত।


সম্পাদনা: এছাড়াও, যখন জ্যাঞ্জো আপনার প্যাকেজ থেকে বিকাশ আমদানি করে, আপনি from base import *ভিতরের সংজ্ঞায়িত হওয়ায় এটি বেসের অভ্যন্তরে সমস্ত পরিবর্তনশীল সূচনা করে__init__.py


দুঃখিত, আমি আপনার বক্তব্য না। বিকাশ শুরুর দিকে বেস ইম্পোর্ট * ছিল এবং এটি কার্যকর হয়নি।
জলবায়ু

ওহ দুঃখিত, যা ঘটছে তা নির্বিশেষে আমি ঝাঁপিয়ে পড়েছি। জ্যাঙ্গো এখনও আপনার development.py পরিবর্তে সেটিংস থেকে সেটিংস আমদানি হিসেবে এটা কাজ যখন তোমার দিকে বেস আমদানি কারণে মনে হয় চেষ্টা করছে Init .py
Guilherme ডেভিড Da Costa

5

আমি মনে করি এটি পরিবেশগত ত্রুটি , আপনার সেটিংস চেষ্টা করা উচিত:DJANGO_SETTINGS_MODULE='correctly_settings'


4

সেলারি নিয়েও আমার একই সমস্যা ছিল। আমার সেটিং.পি এর আগে :

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

পরে:

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

যদি পরিবেশের ভেরিয়েবলগুলি সংজ্ঞায়িত না হয় তবে: SECRET_KEY = আপনার বিকাশকারী কী


4

ইন Init সেটিংস ডিরেক্টরি .py সঠিক আমদানি লিখুন, মত:

from Project.settings.base import *

ডাব্লুএসজি.পি বা ম্যানেজ.পি.পি পরিবর্তন করার দরকার নেই


পারফেক্ট! ধন্যবাদ
ময়ূর

3

ওএস এক্স-তে জ্যাঙ্গোর সাথে 1.5 এবং 1.6 উভয়ই এই সমস্যাটি আমি সমস্ত সক্রিয় সেশনগুলিকে ভার্চুয়ালেনভে নিষ্ক্রিয় করে আবার শুরু করে সমাধান করেছি।


3

পাইচার্ম ব্যবহারকারী যে কোনও ব্যক্তির জন্য: সবুজ "নির্বাচিত কনফিগারেশন চালান" বোতামটি এই ত্রুটিটি তৈরি করবে, তবুও নিম্নলিখিত কাজগুলি চালিয়ে যাবে:

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

এটি ঠিক করার জন্য আপনাকে কনফিগারেশনের পরিবেশ পরিবর্তনশীলগুলি সম্পাদনা করতে হবে। এটি করতে সবুজ রান বোতামের বামদিকে "রান / ডিবাগ কনফিগারেশন নির্বাচন করুন" ড্রপ-ডাউন মেনুতে ক্লিক করুন এবং তারপরে "সম্পাদনা কনফিগারেশন" এ ক্লিক করুন। "এনভায়রনমেন্ট" ট্যাব এর অধীনে পরিবেশ পরিবর্তনশীল এ পরিবর্তন DJANGO_SETTINGS_MODULEকরুন app_name.settings.development


2

মিশ্রণে আরও একটি সম্ভাব্য সমাধান নিক্ষেপ করতে, আমার settingsফোল্ডারের পাশাপাশি settings.pyআমার প্রজেক্টের ডায়ারে একটি ছিল। (আমি পরিবেশ-ভিত্তিক সেটিংস ফাইলগুলি থেকে একটি ফাইলে ফিরে আসছিলাম। আমার তখন থেকে পুনর্বিবেচনা করা হয়েছে))

পাইথন বিভ্রান্ত হয়ে পড়ছিল যে আমি আমদানি করতে চাই project/settings.pyবা না project/settings/__init__.py। আমি settingsদির সরিয়েছি এবং এখন সবকিছু ঠিকঠাক কাজ করে।


1

আমি কেবল যুক্ত করতে চেয়েছিলাম যে আমার settings.pyফাইলে যখন ডাটাবেসের নামটি ভুল বানান করা হয়েছিল তখন আমি এই ত্রুটিটি পেয়েছি যাতে ডিবি তৈরি করা যায় না।


1

আমি এই সমস্যাটি ১.৮.৪-তে টেম্পল্যাটস সেটিংস ঠিক করে টিপলিটগুলি সংশোধন করে সমাধান করেছি (টেম্পলেটগুলি ['ডিবাগ' সরানো] এটি সমাধান করেছে)

আপনি সম্প্রতি যে সেটিংস পরিবর্তন করেছেন সেগুলি দেখুন, নিশ্চিত হয়ে নিন যে সমস্ত কী-বুক-বুক রয়েছে।


1

আমার জন্য সমস্যাটি get_text_noopভাষাগুলিতে পুনরাবৃত্ত হওয়ার জন্য কল করছিল ।

পরিবর্তন হচ্ছে

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

প্রতি

from django.utils.translation import gettext_lazy as _

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

বেস সেটিংস ফাইল ImproperlyConfigured: The SECRET_KEY setting must not be emptyব্যতিক্রম সমাধান ।


আমি একই সমস্যা পেয়েছি। Django.utils.translation আমদানি gettext_lazy _ হিসাবে _ হিসাবে: _ django.utils.translation আমদানি gettext _ থেকে _ হিসাবে পরিবর্তন করতে হবে
মাইকেল স্টাচুরা

0

আমি =আমার .envফাইলটিতে সমান চিহ্ন ( ) এর আশেপাশের ফাঁকা স্থান সরিয়ে এই সমস্যাটি সমাধান করেছি ।


0

আমার ক্ষেত্রে সমস্যাটি ছিল - আমার আমার ছিল app_folderএবং settings.pyএটি ছিল। তারপরে আমি সিদ্ধান্ত নিলাম Settings folderভিতরে app_folderতৈরি করব - এবং এটির সাথে সংঘর্ষ হয়েছে settings.py। সবেমাত্র নামটির নামকরণ Settings folder- এবং সমস্ত কিছুই কাজ করে।


0

আমার ম্যাক ওএস পছন্দ করে নি যে সেটিংস ফাইলে এনভ ভেরিয়েবল সেটটি খুঁজে পায়নি:

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

তবে আমার স্থানীয় ম্যাক ওএস দেব পরিবেশে env ভার যোগ করার পরে, ত্রুটিটি অদৃশ্য হয়ে গেছে:

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

আমার ক্ষেত্রে আমারও পরম যুক্ত করা দরকার --settings:

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

যেখানে product.py হ'ল এমন ফাইল যা কোনও সেটিংস ফোল্ডারের অভ্যন্তরে উত্পাদন নির্দিষ্ট সেটিংস ধারণ করে।


0

আমি আমার সেটিংস.পাই লাইনে মন্তব্য করে উপরের সমস্যাটি সমাধান করেছি

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

SECRET_KEYআমার ~/.bashrcফাইলে ঘোষণা করা হয়েছে (লিনাক্স উবুন্টু ব্যবহারকারীদের জন্য)

আমার লোকালম্যাচিনে বিকাশের উদ্দেশ্যে আমি ইওরিওরনেট ভেরিয়েবল ব্যবহার করিনি

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

উপরের লাইন ত্রুটি দেয় নি


0

আমার ক্ষেত্রে, গিথুব অ্যাকশন সেট আপ করার সময় আমি কেবল এনএমএভ ফাইলটিতে এনভির ভেরিয়েবলগুলি যুক্ত করতে ভুলে গেছি:

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

0

এতগুলি ভিন্ন উত্তর থাকার কারণ হ'ল ব্যতিক্রমটি সম্ভবত SECRET_KEY এর সাথে কিছু করার নেই। এটি সম্ভবত একটি পূর্বের ব্যতিক্রম যা গ্রাস করা হচ্ছে। আসল ব্যতিক্রম দেখতে সত্যই DEBUG = ডিবাগিংটি চালু করুন।


0

আমার ক্ষেত্রে, দীর্ঘ অনুসন্ধানের পরে আমি দেখতে পেলাম যে আপনার জাজানো সেটিংসে (সেটিংস> ভাষা ও ফ্রেমওয়ার্ক> জ্যাঙ্গো) পাইকার্মের কনফিগারেশন ফাইলের ক্ষেত্রটি অপরিবর্তিত। আপনার এই প্রকল্পটি আপনার প্রকল্পের সেটিংস ফাইলটিতে করা উচিত। তারপরে, আপনাকে অবশ্যই রান / ডিবাগ সেটিংসটি খুলতে হবে এবং পরিবেশের পরিবর্তনশীল DJANGO_SETTINGS_MODULE = বিদ্যমান পথটি সরিয়ে ফেলতে হবে।

এটি ঘটে কারণ পাইচার্মের জ্যাঙ্গো প্লাগইন ফ্রেমওয়ার্কটির কনফিগারেশনকে বাধ্য করে। সুতরাং কোনও os.en वातावरण.setdefault ('DJANGO_SETTINGS_MODULE', 'myapp.settings') কনফিগার করার কোনও মানে নেই


0

__init__.py একা মধ্যে base.py আমদানি করুন । আপনি আবার একই কনফিগারেশন পুনরাবৃত্তি করবেন না তা নিশ্চিত করুন !.

পরিবেশ পরিবর্তনশীল সেট করুন SET DJANGO_DEVELOPMENT =dev

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

ভিতরে __init__.py

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

ইন base.pyবিশ্বব্যাপী কনফিগারেশনের কনফিগার করা হয়েছে। ডাটাবেস বাদে পছন্দ

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

ভিতরে local.py

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

0

আমি একই সমস্যার মুখোমুখি হওয়ায় আমি উত্তর খুঁজতে এখানে এসেছি, এখানে উত্তরগুলির কোনওটিই আমার পক্ষে কার্যকর হয়নি। তারপরে অন্যান্য ওয়েবসাইটে অনুসন্ধানের পরে আমি এই সহজ সংশোধন করতে গিয়ে হোঁচট খেয়েছি। এটা আমার জন্য কাজ করেছে

wsgi.py

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

প্রতি

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

0

আমাকে মিটার আকর্ষণীয় সমাধান শেয়ার করুন!

আমি SECRET_KEY = "*** & ^% $ #" সেটিংস প্যাকেজগুলিতে init .PY ফাইল এ রেখেছি এবং ত্রুটিটি অদৃশ্য হয়ে গেছে! এটি আসলে একটি লোডিং সমস্যা!

আশা করি এই দ্রুত কাজটি আপনার কারও জন্য উপকারী!



0

উইং আইডিই ব্যবহার করা যে কোনও ব্যক্তির জন্য : আপনার প্রকল্পের বৈশিষ্ট্যগুলিতে DJANGO_SETTINGS_MODULE সেট করুনDJANGO_SETTINGS_MODULE=${DJANGO_SITENAME}.config.settings.development

আপনি নীচে সেটিংসটি পাবেন: প্রকল্প -> প্রকল্পের বৈশিষ্ট্য এবং ক্ষেত্রের পরিবেশে মান নির্ধারণ করুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.