我试图在我的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
任何想法我做错了什么?
答案 0 :(得分:1)
您发布的代码显示您的AnalyticsView位于自己的文件中;你需要导入该文件。
from survey.views.analytics_view import AnalyticsView