在django中为新应用程序设置应用程序值

时间:2016-06-04 20:44:34

标签: python django

所以我一直关注django tutorial并且事情很顺利,但后来我决定尝试按照教程编写我自己的应用程序。我创建了一个视图,并使用此部分更新了/ pysent/settings.py文件

 INSTALLED_APPS = [
    'pressent.apps.PressentConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

但是,当我保存文件时,我从正在运行的服务器收到错误:

ImportError: No module named PressentConfig

如果我将上面的第一行更改为

`pressent`

我没有收到任何错误消息。另一方面,使用教程示例,可以使用行

polls.apps.PollsConfig

django版本应该是1.9.6

>>> import django 
>>> django.VERSION
(1, 9, 6, 'final', 0)
>>> 

这里发生了什么?

修改的 解决方案是编辑pysent/pressent/apps并添加

class PressentConfig(AppConfig):
    name = 'pressent'

问题的原因是我更改了文件夹名称。

2 个答案:

答案 0 :(得分:2)

查看你的app目录,检查是否有一个名为app的模块,并在该模块中有一个名为PressentConfig的类。如果没有,那么除非您为应用创建配置,否则app config方法将无效。阅读更多Django: configuring apps

答案 1 :(得分:2)

我假设pressent是你的django应用程序名称(项目名称我认为是pysent),所以有一个名为pressent的目录并在其中有一个apps.py文件,最后该文件有一个名为PressentConfig的类。

PressentConfig类示例:

from django.apps import AppConfig

class PressentConfig(AppConfig):
    name = 'pressent'

    # Exec some configs for this app. Maybe overriding the ready method