代码之家  ›  专栏  ›  技术社区  ›  Kareem

无法导入“”。路径必须是完全限定的

  •  0
  • Kareem  · 技术社区  · 7 年前

    我和Django一起工作了几个月,创建这个网站只是为了好玩,并进一步提高自己,我一辈子都无法摆脱这个错误,我已经查找了我所有的代码,但找不到这个导入错误,出于某种原因,它不会告诉我哪里出了问题。这就是错误所在。然而,奇怪的是,这种情况并不总是发生在这个页面上,就像他们轮流出错一样,例如,我有时可以毫无问题地登录,但有时我会遇到这种错误,我所要做的就是重新加载页面并再次输入我的详细信息。

    Environment:
    
    Request Method: POST
    Request URL: https://www.enfieldgrammar.tk/account/login/?next=/account/
    
    Django Version: 1.11b1
    Python Version: 3.6.0
    Installed Applications:
    ['accounts',
     'django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles']
    Installed Middleware:
    ['django.middleware.security.SecurityMiddleware',
     'django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware']
    
    
    
    Traceback:
    
    File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/exception.py" in inner
      41.             response = get_response(request)
    
    File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py" in _legacy_get_response
      249.             response = self._get_response(request)
    
    File "/usr/local/lib/python3.6/dist-packages/django/core/handlers/base.py" in _get_response
      178.             response = middleware_method(request, callback, callback_args, callback_kwargs)
    
    File "/usr/local/lib/python3.6/dist-packages/django/middleware/csrf.py" in process_view
      314.                 return self._reject(request, REASON_BAD_TOKEN)
    
    File "/usr/local/lib/python3.6/dist-packages/django/middleware/csrf.py" in _reject
      163.         return _get_failure_view()(request, reason=reason)
    
    File "/usr/local/lib/python3.6/dist-packages/django/middleware/csrf.py" in _get_failure_view
      43.     return get_callable(settings.CSRF_FAILURE_VIEW)
    
    File "/usr/local/lib/python3.6/dist-packages/django/urls/utils.py" in get_callable
      27.         raise ImportError("Could not import '%s'. The path must be fully qualified." % lookup_view)
    
    Exception Type: ImportError at /account/login/
    Exception Value: Could not import ''. The path must be fully qualified.
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   rtindru    7 年前

    从堆栈跟踪的外观来看,发生了以下情况:

    • 您正在向Django发送HTTP POST请求
    • 你有 CSRF Middleware 安装;这是件好事。在此处阅读有关CSRF的更多信息。
    • POST请求没有CSRF令牌,这会在Django中引发错误。
    • Django正在尝试向您显示针对CSRF故障显示的默认视图。这是由 settings.CSRF_FAILURE_VIEW ->默认为 django.views.csrf.csrf_failure 如文件所述 here .
    • 然而,Django似乎在寻找一个空字符串的视图 ''

    基于此,项目的设置似乎正在为 设置。CSRF\u FAILURE\u视图 到空字符串 '' ->如何以及在何处发生这种情况是您需要进一步调试的。

    我猜你是在用包装纸 setting 来自环境的变量,回退到空字符串 '' ,这将覆盖Django的默认回退 德扬戈。意见。csrf。csrf_故障