【问题标题】:How to fix django app error in edx-platform如何修复 edx-platform 中的 django 应用程序错误
【发布时间】:2019-04-16 12:54:50
【问题描述】:

我想在https://github.com/edx/edx-platform 中添加一个新应用。 我正在关注这个https://docs.djangoproject.com/en/2.2/intro/tutorial01/ 文档

/edx/app/edxapp/edx-platform/myapp/url.py

from django.conf.urls import url
from . import views
urlpatterns = [
   url('', views.hello, name = 'hello'),
]

/edx/app/edxapp/edx-platform/lms/envs/common.py

INSTALLED_APPS = [
    # Standard ones that are always installed...
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.humanize',
    'django.contrib.messages',
    'django.contrib.redirects',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.staticfiles',
    'djcelery',
    'myapp',
     .............

/edx/app/edxapp/edx-platform/lms/urls.py

urlpatterns = [
    url(r'^$', branding_views.index, name='root'),   # Main marketing page, or redirect to courseware

    url(r'', include('student.urls')),
    # TODO: Move lms specific student views out of common code
    url(r'^dashboard/?$', student_views.student_dashboard, name='dashboard'),
    url(r'^change_enrollment$', student_views.change_enrollment, name='change_enrollment'),
    url(r'^myapp/', include('myapp.urls')),

我的错误

Traceback (most recent call last):
  File "manage.py", line 123, in <module>
    execute_from_command_line([sys.argv[0]] + django_args)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/base.py", line 327, in execute
    self.check()
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/base.py", line 359, in check
    include_deployment_checks=include_deployment_checks,
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/management/base.py", line 346, in _run_checks
    return checks.run_checks(**kwargs)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/checks/registry.py", line 81, in run_checks
    new_errors = check(app_configs=app_configs)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/checks/urls.py", line 16, in check_url_config
    return check_resolver(resolver)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/core/checks/urls.py", line 26, in check_resolver
    return check_method()
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 256, in check
    for pattern in self.url_patterns:
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 407, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/utils/functional.py", line 35, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/edx/app/edxapp/venvs/edxapp/local/lib/python2.7/site-packages/django/urls/resolvers.py", line 400, in urlconf_module
    return import_module(self.urlconf_name)
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/edx/app/edxapp/edx-platform/lms/urls.py", line 6, in <module>
    from django.conf.urls import include, url, path
ImportError: cannot import name path

我哪里出错了。请告诉我。

【问题讨论】:

  • 您使用的是旧版本的 Django!请将您的 Django 应用程序降级到 1.11

标签: django openedx


【解决方案1】:
  File "/edx/app/edxapp/edx-platform/lms/urls.py", line 6, in <module>
    from django.conf.urls import include, url, path
ImportError: cannot import name path

上面的错误是说你不能从django.conf.urls导入path。看来您使用的是旧版本的 django。所以,尝试以下命令安装旧版本。

$ pip install Django==1.11

然后转到文件 /edx/app/edxapp/edx-platform/lms/urls.py 并从导入中删除 path。然后它看起来像下面。

from django.conf.urls import include, url

【讨论】:

  • 谢谢Anjaneyulu,你说得对,编译成功,但是当我尝试mydomain/myapp时,它没有显示到myapp视图。
  • 谢谢 Anjaneyulu,我是 Django 框架的新手,我不知道如何检查 URL 配置。你能帮帮我吗?
猜你喜欢
  • 2019-06-10
  • 2019-07-30
  • 2020-11-29
  • 2011-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 2021-04-18
相关资源
最近更新 更多