【问题标题】:Django unable to resolve the import typeDjango 无法解析导入类型
【发布时间】:2020-09-13 23:58:51
【问题描述】:

我是一个学习 django 的新手,我在这里被击中,有人可以帮助解决这个问题。

我遵循了这个教程https://www.youtube.com/watch?v=RMTVAIVrdtM 我正在使用 pycharm IDE,在类似的行上创建,但仍然收到错误。

from poll import view as poll_views  ### Getting error in this line .....----<<<<<<<

urlpatterns = [
    path('admin/', admin.site.urls),
    path(''.poll_views.home,name='home'),
    path('create/'.poll_views.create, name='create'),
    path('vote/<poll_id>'.poll_views.vote, name='vote'),
    path('results/<poll_id>'.poll_views.results, name='results'),



]

views.py

    from django.shortcuts import render

# Create your views here.

def home(request):
    context = {}
    return render(request, 'poll/home.html',context)

def create(request):
    context = {}
    return render(request, 'poll/create.html',context)

def vote(request, poll_id):
    context = {}
    return render(request, 'poll/vote.html',context)

def results(request, poll_id):
    context = {}
    return render(request, 'poll/results.html',context)

在终端上

(test) C:\Users\Learner\projects\poll_project>python manage.py migrate
Traceback (most recent call last):
  File "C:\Users\Learner\projects\poll_project\manage.py", line 21, in <module>
    main()
  File "C:\Users\Learner\projects\poll_project\manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\management\__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\management\base.py", line 328, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\management\base.py", line 366, in execute
    self.check()
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\management\base.py", line 392, in check
    all_issues = self._run_checks(
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\management\commands\migrate.py", line 64, in _run_checks
    issues.extend(super()._run_checks(**kwargs))
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\management\base.py", line 382, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config
    return check_resolver(resolver)
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
    return check_method()
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\urls\resolvers.py", line 407, in check
    for pattern in self.url_patterns:
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\utils\functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\urls\resolvers.py", line 588, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\utils\functional.py", line 48, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Users\Learner\Envs\test\lib\site-packages\django\urls\resolvers.py", line 581, in urlconf_module
    return import_module(self.urlconf_name)
  File "c:\users\Learner\appdata\local\programs\python\python39\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1021, in _gcd_import
  File "<frozen importlib._bootstrap>", line 998, in _find_and_load
  File "<frozen importlib._bootstrap>", line 977, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 790, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\Users\Learner\projects\poll_project\poll_project\urls.py", line 19, in <module>
    from poll import view as poll_views
ImportError: cannot import name 'view' from 'poll' (C:\Users\Learner\projects\poll_project\poll\__init__.py)

请在下方找到项目文件夹截图。

这是我的文件夹结构

谁能帮我看看哪里出错了???

【问题讨论】:

    标签: django python-3.x pycharm


    【解决方案1】:

    import 语句应该是这样的

    如果要导入特定视图

    from poll.views import <nameoftheview> as poll_views
    

    或者如果你想导入所有视图

    import poll.views as poll_views
    

    更新:更正您的 urls.py 中的错误(@sheraram 也指出)

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('create/', poll_views.create, name='create'),
        path('vote/<poll_id>', poll_views.vote, name='vote'),
        path('results/<poll_id>', poll_views.results, name='results'),
        path('', poll_views.home,name='home'),
    ]
    

    【讨论】:

    • 您好,感谢您的回复。
    • 我已经尝试过了,但它无法识别为 from poll.views import.... 而不是它接受来自 poll_project 导入 poll (但我仍然收到错误文件“C: \Users\Learner\projects\poll_project\poll_project\urls.py",第 22 行,在 中 from poll_project import poll_project ImportError: cannot import name 'poll_project' from 'poll_project' (C:\Users\s5114509\projects\poll_project \poll_project_init_.py) 可以吗
    • 试试import poll.views as poll_views,这就是你需要的。仍然面临问题,然后粘贴您的views.py 代码
    • 无法解决同样的错误,所以上传views.py代码
    • 您是否在settings.py 中添加了poll 作为应用程序?我建议您遵循本教程-docs.djangoproject.com/en/3.0/intro/tutorial01,它与您正在遵循的相似
    【解决方案2】:

    url 采用以下参数 path(route, view, name{optional}) 但是你给了 path(route.view, name)

    替换 .经过路线后,

    【讨论】:

    • 嗨 Sheeram_prajapat,anuragal 感谢您的回复...纠正了我的意见。py...迁移工作,但仍然得到(import poll.views as poll_views)民意调查我得到错误,因为没有模块命名民意调查,而不是自动完成显示 poll_project... 可能出了什么问题.. 我遵循了与他们在视频中解释的相同的目录结构
    • 您的项目名称是 poll_project 而不是 poll ?如果是,则在主项目的 urls.py 文件中将 poll 更改为 poll_project
    • 嗨 Anuragal/Shreeram,谢谢你们,刚刚创建了一个新的投票页面,导入时仍然存在相同的错误/但能够成功创建投票页面...@Shreeram 接受您的回答因为这是我犯的主要错误。
    猜你喜欢
    • 1970-01-01
    • 2012-11-22
    • 2023-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    相关资源
    最近更新 更多