m0_59759913
2021-07-28 15:44
采纳率: 71.4%
浏览 740
已结题

这个问题怎么解决,为什么会报错?

我正在学习python crash course, 2nd edition 第18章。做到激活模型需要makemigrations.

from django.db import models


# Create your models here.

class Topic(models.Model):
    """A topic the user is learning about."""
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True) 

    def __str__(self):
        """Return a string representation of the model."""
        return self.text`

然后报错:
Traceback (most recent call last):
File "C:\Users\Dell-PC\learning_logs\models.py", line 6, in
class Topic(models.Model):
File "C:\Users\Dell-PC\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\base.py", line 108, in new
app_config = apps.get_containing_app_config(module)
File "C:\Users\Dell-PC\AppData\Local\Programs\Python\Python39\lib\site-packages\django\apps\registry.py", line 253, in get_containing_app_config
self.check_apps_ready()
File "C:\Users\Dell-PC\AppData\Local\Programs\Python\Python39\lib\site-packages\django\apps\registry.py", line 135, in check_apps_ready
settings.INSTALLED_APPS
File "C:\Users\Dell-PC\AppData\Local\Programs\Python\Python39\lib\site-packages\django\conf_init_.py", line 82, in getattr
self.setup(name)
File "C:\Users\Dell-PC\AppData\Local\Programs\Python\Python39\lib\site-packages\django\conf_init
.py", line 63, in _setup
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
[Finished in 383ms]

我用的是sublime text.
怎么解决?

  • 点赞
  • 收藏

5条回答 默认 最新

  • 一眼青苔 2021-07-28 17:36

    官网说明

    地址:

    https://docs.djangoproject.com/en/1.11/topics/settings/#designating-the-settings

    解释:

    文章大意是在使用 Django 时,必须告诉它你正在使用哪些设置。这些可以通过环境变量 DJANGO_SETTINGS_MODULE设置,程序在执行的时候会自动使用或者你也可以在访问设置之前调用 settings.configure()。

    结论:

    由于你没有设置环境变量,导致你的程序在执行时未找到相应的配置,因此报错了,提醒你应该进行配置。

    补充:

    DJANGO_SETTINGS_MODULE 的值应该是 Python 路径语法,例如Mysite.settings。请注意,设置模块应位于 Python 导入搜索路径上。

    希望对你有所帮助。

    点赞 打赏 评论
  • 吃肉的小馒头 2021-07-29 12:15

    settings.py 这个文件里面有个INSTALLED_APPS 你需要把你应用程序名字加进去

    点赞 打赏 评论
  • 我辈李想 2021-07-29 13:20

    settings.py 中加上自己的app文件夹名字

    img

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    
        'xadmin',
        'crispy_forms',
        'taggit',
    
        'users',#这里
        'qa',
    ]
    
    
    点赞 打赏 评论
  • QQ_572747232 2021-07-30 19:55

    django使用INSTALLED_APPS搜索部署使用的文件(防止误杀非后端代码),你这个应该是settings.py的INSTALLED_APPS没有设置正确,需要把模型的库导入加进去。
    注意:子包不会被主动导入!

    点赞 打赏 评论
  • 马红权 2021-07-31 06:39

    manage.py文件中设定了settings文件

    #!/usr/bin/env python
    import os
    import sys
    
    if __name__ == "__main__":
        os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
    
        from django.core.management import execute_from_command_line
    
        execute_from_command_line(sys.argv)
    
    
    

    你可能没有settings.py这个文件,把你的目录结构列出来看看。

    点赞 打赏 评论

相关推荐 更多相似问题