【问题标题】:Include is not defined包含未定义
【发布时间】:2017-09-11 14:57:16
【问题描述】:

澄清一下,Security 是项目文件夹,Accounts 是应用程序。我确定这是我忽略的一个基本问题,但我一直在努力让我的 manged.py 命令正常工作,因为以下错误:

NameError:名称“包含”未定义。

我的项目(安全)urls.py 如下,其中包含:

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^account/', include('accounts.url')),
]

我的帐户 apps.py 包含:

from django.apps import AppConfig


    class AccountsConfig(AppConfig):
        name = 'accounts'

我的帐户应用程序 urls.py 如下:

      from django.conf.urls import url, include

from . import views

urlpatterns = [
   url(r'^$', views.home, name='home'),
]

我的 settings.py 在已安装的应用中有帐户:

INSTALLED_APPS = [
    'accounts',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

在我的项目和应用程序的 urls.py 中添加包含后,我现在收到以下说明帐户模块未找到。

    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 978, in _gcd_import
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 948, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'accounts.url'

【问题讨论】:

    标签: python django


    【解决方案1】:

    您在未将其导入的文件中使用include 函数。你应该添加

    from django.conf.urls import url, include
    

    到您的安全应用程序 urls.py

    编辑

    对于第二个错误,请尝试更改包含帐户网址的方式。将 accounts.url 替换为它的相对路径,从应用程序文件夹开始。例如

    url(r'^account/', include('accounts.urls')),
    

    如果您有疑问,请将您的文件夹结构添加到问题中,我会正确更新答案。

    【讨论】:

    • 在我的 sec 应用程序中,我的项目文件夹使用包含以下内容吗?为了澄清 Security 是项目的名称,Accounts 是应用程序的名称... from django.conf.urls import url, include from .导入视图
    • 不,不幸的是它不能那样工作。您必须在要使用的文件中导入include
    • 请尝试一下,如果还有其他错误,请告诉我。
    • 我更新了代码,包含错误消失了,但现在它给出了accounts.url modulenotfounderror。我也更新了上面的代码和错误。
    • 阅读您添加的内容后,我更改了答案,我认为您遇到的唯一问题是“accounts.urls”中缺少最后一个字母“s”
    【解决方案2】:

    解决办法如下:

    from django.conf.urls import include
    

    将其导入项目的urls.py 页面。

    【讨论】:

      【解决方案3】:
      In your rootapp.py you have used
      urlpatterns = [
      url(r'^admin/', admin.site.urls),
      url(r'^account/', include('accounts.url')),
      ]
      Here you have used include('accounts.url')
      But you have not imported include 
      So your code should be
      
      from django.apps import AppConfig
      
      
      class AccountsConfig(AppConfig):
          name = 'accounts'
      
      my security app urls.py is the following:
      
      from django.conf.urls import url , include
      from django.contrib import admin
      
      urlpatterns = [
          url(r'^admin/', admin.site.urls),
          url(r'^account/', include('accounts.url')),
      ]
      

      【讨论】:

        【解决方案4】:

        您好,我不确定,但它对我有用。我刚刚使用此命令安装了模块包含(在虚拟环境中):

        pip install include

        脚本不再显示错误。

        【讨论】:

          【解决方案5】:

          首先尝试'pip install include'

          你忘了保存你的views.py和urls.py

          将此添加到您的 urls.py 'from django.conf.urls import include'

          【讨论】:

            猜你喜欢
            • 2019-01-14
            • 1970-01-01
            • 1970-01-01
            • 2014-01-28
            • 1970-01-01
            • 2010-10-15
            • 2022-01-16
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多