Python Django ImportError:模块未定义属性/类

Python Django ImportError:模块未定义属性/类,python,django,importerror,django-shop,Python,Django,Importerror,Django Shop,我正在尝试添加自定义/重写的管理员站点,因为我需要一个不同的管理员模板。我按照医生说的做了一切: project/admin.py 从django.contrib.admin导入AdminSite 类NewAdminSite(AdminSite): index_template='admin/index.html' 站点标题='Administration' admin\u site=NewAdminSite(name='newadmin') project/apps.py 类NewAdmi

我正在尝试添加自定义/重写的管理员站点,因为我需要一个不同的管理员模板。我按照医生说的做了一切:

project/admin.py

从django.contrib.admin导入AdminSite
类NewAdminSite(AdminSite):
index_template='admin/index.html'
站点标题='Administration'
admin\u site=NewAdminSite(name='newadmin')
project/apps.py

类NewAdminConfig(AdminConfig):
默认站点='project.admin.NewAdminSite'
我没有任何其他应用程序,project是我的根目录 ofc I在URL.py中添加了admin_site.url而不是admin.site.url,在apps.py中创建了自定义AdminConfig,并将新的AdminConfig添加到已安装的应用中而不是django.contrib.admin

问题是,我现在收到了:

AdminSiteClass=导入\u字符串(apps.get\u app\u config('admin')。默认\u站点)

文件“C:\Users\User.virtualenvs\ssccms-fGQRLLK4\lib\site packages\django\utils\module\u loading.py”,第24行,导入字符串 )犯错误

ImportError:模块“project.admin”未定义“NewAdminSite”属性/类

我的文件夹结构:

manage.py

计划

  • 管理员
  • 背景
  • 网址
  • 应用程序
  • 静止的
  • 模板
  • 迁移
workdir

  • sqlite
  • 媒体
节点单元

地点

pipfile.lock

皮普尔

wsgi

希望这对于文件夹结构来说足够了,这是django shop cookiecutter项目的示例结构

编辑:

是的,这肯定是一个循环导入错误。我现在的解决方法是简单地通过以下方式使用给定的admin.site:

admin.site.index_template = 'admin/newadminindextemplate.html'
它起作用了!这就是我想要的。但文件上说:

如果您希望更改索引、登录或注销模板,最好创建自己的AdminSite实例

我试过:

我在问题的第一个链接中粘贴了替代部分,但现在有了

django.urls.exceptions.NoReverseMatch:找不到“cascade\u texteditor\u config”的相反内容cascade_texteditor_config'不是有效的视图函数或模式名称

现在我的新问题是:


是否需要创建自己的索引模板实例?文档中没有解释,所以我在以后执行admin.site.index\u template时是否会遇到任何问题?

我刚刚遇到了类似的错误。这有点令人困惑,在我的例子中,这是由于循环导入

在我的情况下,以下几点有帮助:

  • 将包含
    NewAdminSite
    类的文件顶部的导入转换为本地导入(在函数内部需要它们的地方)
  • admin\u site
    变量的实例化移动到单独的文件中

这两个问题在您粘贴的代码中实际上都不可见,但可能会让您知道要查找什么。

我更正了django docs链接。我不理解您评论的结尾-我只想覆盖django.contrib.admin.AdminSite的index_template属性,我没有在其他任何地方编写/定义它,我想cadmin.py中的ode已经足够了?在最后一部分,我询问了编写类的文件名(您添加了这个
project/admin.py
).无论如何,一切看起来都很好…你能把你的目录结构添加到问题中吗?我希望这就是你对文件夹结构的意思,但我想我们在这里有一个误解:我认为这样子类化AdminSite就足够了,只需添加/覆盖我想在admin.py中更改/添加的属性/函数。我没有在其他任何地方,我对AdminSite现在的情况都很满意,所以我认为这样编码就足够了,如果NewAdminSite以这种方式继承它,django可以使用AdminSite中定义的任何函数。我不是说你需要做更多的事。我要求目录结构来理解你从哪里得到的来自的错误。查看您的目录结构,尽管一切看起来都很好。我所能说的是,可能有其他的
project.admin
正在从某个地方导入,或者在您的
admin.py
中实际上可能有类似
del NewAdminSite
的内容。好的,我将对此进行调查,非常感谢!