Django 1.11:ImportError:无法导入名称[查看]

时间:2018-01-31 15:58:21

标签: django import views importerror

我试图在我的Django应用程序中添加ChartsJS作为额外视图,但我不断收到导入错误。我不知道为什么。据我所知,我没有任何循环依赖。类似的StackOverflow问题似乎与问题不符。我完全被卡住了。

有问题的观点是 Analytics 视图。

项目/应用/ urls.py:

# -*- coding: utf-8 -*-

from __future__ import (
    absolute_import, division, print_function, unicode_literals
)

from django.conf.urls import url
from future import standard_library
from survey.views import ConfirmView, IndexView, SurveyCompleted, SurveyDetail, AnalyticsView
from survey.views.survey_result import serve_result_csv

standard_library.install_aliases()

urlpatterns = [
    url(r'^$', IndexView.as_view(), name='survey-list'),
    url(r'^(?P<id>\d+)/', SurveyDetail.as_view(), name='survey-detail'),
    url(r'^csv/(?P<pk>\d+)/', serve_result_csv, name='survey-result'),
    url(r'^(?P<id>\d+)/completed/', SurveyCompleted.as_view(),
        name='survey-completed'),
    url(r'^(?P<id>\d+)-(?P<step>\d+)/', SurveyDetail.as_view(),
        name='survey-detail-step'),
    url(r'^confirm/(?P<uuid>\w+)/', ConfirmView.as_view(),
        name='survey-confirmation'),
    url(r'^analytics/$', AnalyticsView.as_view(),
        name='analytics-view'),
]

项目/应用/视图/ analytics_view.py:

# -*- coding: utf-8 -*-

from __future__ import (
    absolute_import, division, print_function, unicode_literals
)
from builtins import super
from future import standard_library

from django.views.generic.base import TemplateView
from django.contrib.auth.models import User

standard_library.install_aliases()

import arrow


class AnalyticsView(TemplateView):
    template_name = "survey/analytics.html"
...

我已经读过它可能与设置有关,但我看不到任何配置问题 -

项目/ settings.py:

ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_URL = '/bootstrap_admin/static/'
STATICFILES_DIRS = [
    os.path.normpath(os.path.join(ROOT, '..', "survey", "static")),
]

回溯:

Unhandled exception in thread started by <function wrapper at 0x05CBB9F0>
Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\utils\autoreload.py", line 227, in wrapper
    fn(*args, **kwargs)
  File "C:\Python27\lib\site-packages\django\core\management\commands\runserver.py", line 125, in inner_run
    self.check(display_num_errors=True)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 359, in check
    include_deployment_checks=include_deployment_checks,
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 346, in _run_checks
    return checks.run_checks(**kwargs)
  File "C:\Python27\lib\site-packages\django\core\checks\registry.py", line 81, in run_checks
    new_errors = check(app_configs=app_configs)
  File "C:\Python27\lib\site-packages\django\core\checks\urls.py", line 16, in check_url_config
    return check_resolver(resolver)
  File "C:\Python27\lib\site-packages\django\core\checks\urls.py", line 26, in check_resolver
    return check_method()
  File "C:\Python27\lib\site-packages\django\urls\resolvers.py", line 254, in check
    for pattern in self.url_patterns:
  File "C:\Python27\lib\site-packages\django\utils\functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Python27\lib\site-packages\django\urls\resolvers.py", line 405, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "C:\Python27\lib\site-packages\django\utils\functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "C:\Python27\lib\site-packages\django\urls\resolvers.py", line 398, in urlconf_module
    return import_module(self.urlconf_name)
  File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "C:\Users\ronaldg\Documents\csa-survey\urls.py", line 18, in <module>
    url(r'^survey/', include('survey.urls')),
  File "C:\Python27\lib\site-packages\django\conf\urls\__init__.py", line 50, in include
    urlconf_module = import_module(urlconf_module)
  File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module
    __import__(name)
  File "C:\Users\ronaldg\Documents\csa-survey\survey\urls.py", line 9, in <module>
    from survey.views import ConfirmView, IndexView, SurveyCompleted, SurveyDetail, AnalyticsView
ImportError: cannot import name AnalyticsView

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

您发布的代码显示您的AnalyticsView位于自己的文件中;你需要导入该文件。

from survey.views.analytics_view import AnalyticsView