django.core.exceptions.ImproperlyConfigured:请求的设置LOGGING_CONFIG

问题描述 投票:2回答:1

我正在获得以下追溯,它似乎与Django 3.0.2中所做的更改有关?如果有人可以解释我在做什么错,我将不胜感激。

(myDjangoEnv) D:\Django\django_lectures\first_project>python populate_first_app.py
Traceback (most recent call last):
  File "populate_first_app.py", line 5, in <module>
    django.setup()
  File "C:\Users\ABC\.conda\envs\myDjangoEnv\lib\site-packages\django\__init__.py", line 19, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "C:\Users\ABC\.conda\envs\myDjangoEnv\lib\site-packages\django\conf\__init__.py", line 76, in __getattr__
    self._setup(name)
  File "C:\Users\ABC\.conda\envs\myDjangoEnv\lib\site-packages\django\conf\__init__.py", line 57, in _setup
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

这是我的代码:

import  os
os.environ.setdefault('DJANGO_SETTING_MODULE', 'first_project.settings')

import django
django.setup()

##FAKER POP SCRIPT
import random
from first_app.models import AccessRecord, Topic, Webpage
from faker import Faker

fakegen = Faker()
topics = ['Search', 'Social', 'Marketplace', 'News', 'Game']

def add_topic():
    t = Topic.objects.get_or_create(top_name = random.choice(topics))[0]
    t.save()
    return t


def populate(N = 5):

    for entry in range(N):

        #get the topic for the entry
        top = add_topic()

        #Create fake data for that entry
        fake_url = fakegen.url()
        fake_date = fakegen.date()
        fake_name = fakegen.company()

        #Create new webpage entry
        webpage = Webpage.objects.get_or_create(topic = top, url= fake_url, name = fake_name)[0]

        #Create a fake AccessRecord for that webpage
        acc_rec = AccessRecord.objects.get_or_create(name = webpage, date = fake_date)[0]


if __name__ == '__main__':
    print("populate Script!")
    populate(20)
    print("populating Complete!")
python django faker
1个回答
0
投票

您需要设置环境变量DJANGO_SETTINGS_MODULE,而不是DJANGO_SETTING_MODULE。注意S末尾的SETTINGS

尝试编辑第二行以阅读

os.environ['DJANGO_SETTINGS_MODULE'] = 'first_project.settings'
© www.soinside.com 2019 - 2024. All rights reserved.