Django:无法导入“模块”。检查模块AppConfig.name是否正确 - python

可能看起来像一个已经回答的问题,实际上here您遇到的问题与我相同。我的问题是,这只是一个把戏,只是一行,没有任何解释(尽管仍然不同,但是给出的解决方案有效,这是我的问题的一部分)。
这是我的项目结构,经过简化:

manage.py
compfactu/---settings.py
          |--__init__.py
          |--core/--------__init__.py
                         |-apps.py  

所以这是我在INSTALLED_APPS中添加我的应用程序的方式:

apps.py

from django.apps import AppConfig


class CoreConfig(AppConfig):
    name = 'core'

settings.py

INSTALLED_APPS = [ 
    ...
    #compfactu modules
    'compfactu.core.apps.CoreConfig',
]

当我阅读django 1.11文档时,我引用:

新应用程序应避免使用default_app_config。相反,它们应要求在INSTALLED_APPS中显式配置指向适当的AppConfig子类的虚线路径。

很好,这是一个新应用程序,所以我应该这样做:但我遇到错误。而且这不是pythonpath的问题,因为我刚刚打开了python shell,我可以毫无问题地进行from compfactu.core.apps import CoreConfig(也可以打印sys.path,一切都很好)。

但是我有这个错误,这里有一个完整的追溯:

Traceback (most recent call last):
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/apps/config.py", line 147, in create
    app_module = import_module(app_name)
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 986, in _gcd_import
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked
ImportError: No module named 'core'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 117, in inner_run
    autoreload.raise_last_exception()
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/utils/autoreload.py", line 251, in raise_last_exception
    six.reraise(*_exception)
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/utils/six.py", line 685, in reraise
    raise value.with_traceback(tb)
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper
    fn(*args, **kwargs)
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/__init__.py", line 27, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/home/jbjaillet/Projets/venvcompfactu/lib/python3.5/site-packages/django/apps/config.py", line 151, in create
    app_name, mod_path, cls_name,
django.core.exceptions.ImproperlyConfigured: Cannot import 'core'. Check that 'compfactu.core.apps.CoreConfig.name' is correct.

从那里,所有文件和类都由django(manage.py startapp)生成。
当我实际执行上面链接的问题中所述的内容时,请执行以下操作:

INSTALLED_APPS = [ 
    ...
    #compfactu modules
    'compfactu.core',
]

有用 !我不明白这一点!阅读该文档(我刚刚引用的部分),它应该不起作用(注意我的default_app_config中没有__init__.py)。

因此,作为我在哪里找到“技巧”但没有解释的问题,我在这里问为什么在不应该使用时会以这种方式起作用,以及为什么官方文档中的解决方案不起作用?

预先感谢您的时间。

参考方案

根据文档,AppConfig.name是应用程序的完整python路径。

AppConfig.name

应用程序的完整Python路径,例如'django.contrib.admin'

此属性定义配置适用于哪个应用程序。
必须在所有 AppConfig 子类中进行设置。

它在Django项目中必须是唯一的。

https://docs.djangoproject.com/en/2.2/ref/applications/#django.apps.AppConfig.name

试试这个:

class CoreConfig(AppConfig):
    name = 'compfactu.core'

Django-一个CBV可处理多种情况 - python

我很难理解如何使用单个CBV处理(至少)2种不同情况。这是我想做的事情:我有一个ListView来显示对象列表。从那里,我生成一个链接以导航到DetailView以显示对象的详细信息。从那里,我生成一个链接到呈现相关报告的不同视图。我想使用以下网址:1. /myapp/list.html/ 2. /myapp/detail.html/<<uuid…

Django BigInteger自动递增字段作为主键? - python

我目前正在建立一个涉及大量集体智慧的项目。每个访问该网站的用户都将创建一个唯一的配置文件,然后将他们的数据用于为自己和其他用户计算最佳匹配。默认情况下,Django创建一个INT(11)id字段来处理模型的主键。我担心这会很快溢出(即,大约2.4b个设备在未事先设置Cookie的情况下访问了该页面)。如何在MySQL中将其更改为BIGINT并在Django自…

Django Python日期时间设置为午夜 - python

我有django对象的日期时间,但可以是一天中的任何时间。它可以是一天中的任何时间,但我需要将时间设置为00:00:00(另一个日期设置为23:59:59,但原理是相同的)end_date = lastItem.pub_date 当前的结束日期是2002-01-11 12:34:56我需要怎么做才能将其更改为00:00:00?我试过了:end_date.ho…

Django:使用contenttypes框架的一般关系示例? - python

我已经多次浏览了有关contenttypes框架的Django文档,但我对它的理解不足以在项目中实现泛型关系。我一直在寻找有关此事的在线示例或教程,但找不到一个。称我为哑巴,但在这方面我需要一些帮助(请不要仅通过链接到文档来回答问题)。基于在线资源的缺乏,我相信如果您用一个完整的例子来回答这个问题,您的答案可能是迄今为止有关django通用关系(奖金!)的最…

Django:我应该如何存储货币价值? - python

我在这里遇到范式问题。我不知道该将钱存储为Decimal(),还是将其存储为字符串并将自己转换为十进制。我的推理是这样的: PayPal要求小数点后两位为,因此,如果我有49美元的产品,PayPal希望看到49.00。 Django的DecimalField()并未设置小数位数。它仅存储最大小数位数。因此,如果其中有49个字段,并且将字段设置为2个小数位,它…