Django 项目中 AttributeError: 'module 'app02.admin' has no attribute 'site'' 错误解决方法
在 Django 项目中,您可能会遇到以下错误:
File "E:\python\Lib\site-packages\django\core\management\commands\runserver.py", line 133, in inner_run
self.check(display_num_errors=True)
File "E:\python\Lib\site-packages\django\core\management\base.py", line 485, in check
all_issues = checks.run_checks(
^^^^^^^^^^^^^^^^^^
File "E:\python\Lib\site-packages\django\core\checks\registry.py", line 88, in run_checks
new_errors = check(app_configs=app_configs, databases=databases)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\python\Lib\site-packages\django\core\checks\urls.py", line 14, in check_url_config
return check_resolver(resolver)
^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\python\Lib\site-packages\django\core\checks\urls.py", line 24, in check_resolver
return check_method()
^^^^^^^^^^^^^^
File "E:\python\Lib\site-packages\django\urls\resolvers.py", line 494, in check
for pattern in self.url_patterns:
^^^^^^^^^^^^^^^^^
File "E:\python\Lib\site-packages\django\utils\functional.py", line 57, in __get__
res = instance.__dict__[self.name] = self.func(instance)
^^^^^^^^^^^^^^^^^^^
File "E:\python\Lib\site-packages\django\urls\resolvers.py", line 715, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
^^^^^^^^^^^^^^^^^^^
File "E:\python\Lib\site-packages\django\utils\functional.py", line 57, in __get__
res = instance.__dict__[self.name] = self.func(instance)
^^^^^^^^^^^^^^^^^^^
File "E:\python\Lib\site-packages\django\urls\resolvers.py", line 708, in urlconf_module
return import_module(self.urlconf_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "E:\python\Lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "E:\DjangoProject\project20230815\project20230815\urls.py", line 35, in <module>
path('admin/',admin.site.urls)
^^^^^^^^^^
AttributeError: 'module 'app02.admin' has no attribute 'site'
这个错误信息表明,在您的项目的 urls.py 文件中,您引用了一个名为 'admin' 的模块,但是该模块中没有名为 'site' 的属性。
错误原因:
该错误通常是由于以下原因导致的:
- 错误的导入语句: 您的 urls.py 文件中可能存在错误的导入语句,例如,您可能错误地导入了
app02.admin模块,而实际上您需要导入的是django.contrib.admin模块。 - 应用程序名称错误: 您的项目中可能存在一个名为 'admin' 的应用程序,但是您在 urls.py 文件中引用的应用程序名称可能错误。
- 应用程序代码错误: 在您的 'admin' 应用程序的
__init__.py文件中可能存在错误,导致 'site' 属性无法正常访问。
解决步骤:
- 检查导入语句:
- 仔细检查您的 urls.py 文件中所有导入语句,确保没有错误的导入或拼写错误。
- 特别注意检查与 'admin' 相关的导入语句,确保您导入了
django.contrib.admin模块,而不是其他模块。
- 确保应用程序存在:
- 确保您的项目中确实存在一个名为 'admin' 的应用程序,该应用程序通常是 Django 默认安装的一部分。
- 如果您没有找到 'admin' 应用程序,您可以尝试重新安装 Django,并确保您使用的是最新版本。
- 检查应用程序代码:
- 确保您的 'admin' 应用程序的
__init__.py文件没有发生错误。 - 如果您对 'admin' 应用程序进行了自定义修改,请确保您的修改没有引入错误。
- 确保您的 'admin' 应用程序的
示例:
假设您的 urls.py 文件中存在以下代码:
from django.urls import path
from app02.admin import site
urlpatterns = [
path('admin/', site.urls)
]
您需要将代码修改为以下内容:
from django.urls import path
from django.contrib import admin
urlpatterns = [
path('admin/', admin.site.urls)
]
其他解决方法:
- 尝试重新安装 Django:
pip install --upgrade django - 尝试清除缓存:
python manage.py clear_cache - 检查您的虚拟环境:确保您正在使用正确的虚拟环境。
如果以上步骤无法解决问题,请提供更多的代码和错误信息,以便我们更好地帮助您解决问题。
原文地址: https://www.cveoy.top/t/topic/qtL2 著作权归作者所有。请勿转载和采集!