【问题标题】:(Django) include does not import other apps' urls(Django) include 不导入其他应用程序的 url
【发布时间】:2021-12-31 00:36:58
【问题描述】:

在我的 Django 项目中,我有 2 个应用程序:核心和书籍。在我的 core/urls.py 中,我使用 python include('books.url')books/urls.py 导入网址,但我不断收到此错误

我现在一直遇到这个问题,这让我很烦恼。我有一个解决方法,但我真的很想解决这个问题。

core/urls.py

from django.contrib import admin
from django.urls import path
from django.conf.urls import include
# local

urlpatterns = [
    path('/', include('books.urls')),
    path('admin/', admin.site.urls),
]

books/urls.py

from django.contrib import admin
from django.urls import path
# local
from graphene_django.views import GraphQLView
from books.schema import schema

urlpatterns = [
    path('graphql/', GraphQLView.as_view(graphiql=True, schema=schema)), 
]

按照 SO 的建议,我有:

  1. 将books.urls 放在单引号' '内
  2. path('/', include('books.urls')) 放在顶部
  3. from django.urls import include切换到 from django.conf.urls import include

我唯一的解决方法是将所有 url 放入 core/urls.py 中,但从长远来看,这似乎太笨重了。我不明白为什么include 适用于所有人,但不适用于我!

你能帮我解决这个问题吗?谢谢!

【问题讨论】:

    标签: django url include


    【解决方案1】:

    现在GraphQLView是用URL127.0.0.1:8000/graphql/调用的,如果你想用URL127.0.0.1:8000/调用它,你需要改变你的代码:

    core/urls.py

    from django.contrib import admin
    from django.urls import path
    from django.conf.urls import include
    # local
    
    urlpatterns = [
        path('/', include('books.urls')),
        path('admin/', admin.site.urls),
    ]
    

    books/urls.py

    from django.contrib import admin
    from django.urls import path
    # local
    from graphene_django.views import GraphQLView
    from books.schema import schema
    
    urlpatterns = [
        path('/', GraphQLView.as_view(graphiql=True, schema=schema)), 
    ]
    

    【讨论】:

      猜你喜欢
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 2017-02-08
      相关资源
      最近更新 更多