Django 教程中的“‘str’对象没有属性‘标签’”错误

noc*_*tis 6 python django python-3.x

我正在按照 Django 教程来学习如何使用它,但我很早就遇到了一个错误,并且我不知道如何修复它。

它发生在创建 django 项目并执行“编写您的第一个视图”部分时:https://docs.djangoproject.com/en/dev/intro/tutorial01/#write-your-first-view

仔细按照这些步骤操作后,执行时python3 manage.py runserver出现以下错误:AttributeError: 'str' object has no attribute 'tag'

这是完整的错误跟踪:

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/lib/python3.9/threading.py", line 973, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.9/threading.py", line 910, in run
    self._target(*self._args, **self._kwargs)
  File "/home/noctis/.local/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "/home/noctis/.local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 124, in inner_run
    self.check(display_num_errors=True)
  File "/home/noctis/.local/lib/python3.9/site-packages/django/core/management/base.py", line 438, in check
    all_issues = checks.run_checks(
  File "/home/noctis/.local/lib/python3.9/site-packages/django/core/checks/registry.py", line 77, in run_checks
    new_errors = check(app_configs=app_configs, databases=databases)
  File "/home/noctis/.local/lib/python3.9/site-packages/django/core/checks/urls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "/home/noctis/.local/lib/python3.9/site-packages/django/core/checks/urls.py", line 23, in check_resolver
    return check_method()
  File "/home/noctis/.local/lib/python3.9/site-packages/django/urls/resolvers.py", line 448, in check
    for pattern in self.url_patterns:
  File "/home/noctis/.local/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/home/noctis/.local/lib/python3.9/site-packages/django/urls/resolvers.py", line 634, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/home/noctis/.local/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/home/noctis/.local/lib/python3.9/site-packages/django/urls/resolvers.py", line 627, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/home/noctis/code/tests/django/mysite/mysite/urls.py", line 21, in <module>
    path('polls/', include('polls.urls')),
  File "/usr/lib/python3.9/xml/etree/ElementInclude.py", line 128, in include
    _include(elem, loader, base_url, max_depth, set())
  File "/usr/lib/python3.9/xml/etree/ElementInclude.py", line 136, in _include
    if e.tag == XINCLUDE_INCLUDE:
AttributeError: 'str' object has no attribute 'tag'
Run Code Online (Sandbox Code Playgroud)

也许是python版本和django版本不兼容?我正在使用 Python 3.9.7 和 Django 4.0.2

提前致谢

noc*_*tis 28

所以,我发现了我所犯的错误。在本教程中,您可以添加mysite/urls.py以下代码片段:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
Run Code Online (Sandbox Code Playgroud)

vscode 中的 python 自动完成功能添加了includedjango.urls. 因此出现了错误。