提供namespace参数给include()而不是在django 3.0中。

huangapple go评论100阅读模式
英文:

Provide the namespace argument to include() instead on django 3.0

问题

在Django 3.0中,这会产生错误:

  1. django.core.exceptions.ImproperlyConfigured: Passing a 3-tuple to include() is not supported. Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead.

我应该如何更改 url(r'^admin/', include(admin.site.urls))?我尝试查看文档,

  1. from django.conf.urls import patterns, include, url
  2. from django.contrib import admin
  3. admin.autodiscover()
  4. urlpatterns = [
  5. url(r'^admin/', include(admin.site.urls)),
  6. url(r'^hello/', include(myapp.views)),
  7. ]
英文:

In Django 3.0 this gives the error:

  1. django.core.exceptions.ImproperlyConfigured: Passing a 3-tuple to include() is not supported. Pass a 2-tuple containing the list of patterns and app_name, and provide the namespace argument to include() instead.

How should I change url(r'^admin/', include(admin.site.urls))? I tried to look at the documentation,

  1. from django.conf.urls import patterns, include, url
  2. from django.contrib import admin
  3. admin.autodiscover()
  4. urlpatterns = [
  5. url(r'^admin/', include(admin.site.urls)),
  6. url(r'^hello/', include(myapp.views)),
  7. ]

答案1

得分: 3

从管理员URL中删除include并使用path

  1. from django.urls import path
  2. urlpatterns = [
  3. path('admin/', admin.site.urls),
  4. path('hello/', myapp.views),
  5. ]

参考这个django 3文档

英文:

remove include from admin urls and use path

  1. from django.urls import path, include
  2. urlpatterns = [
  3. path('admin/', admin.site.urls),
  4. path('hello/', include('myapp.views')),
  5. ]

refer this django 3 doc.

答案2

得分: 0

问题出在 include(myapp.views)

  • 首先,你应该包含一个字符串 (include('myapp.views')),而不是实际的模块。这就是导致错误的原因。
  • 但第二点,你不应该包含视图,而是应该包含其他的 URL 模式。所以,除非 myapp.views 包含顶级的 urlpatterns,否则也会出错。

最后,正如 @c.grey 指出的那样,使用 path(),而不是 url()

英文:

The problem is with include(myapp.views):

  • First you should include a string (include('myapp.views')), not the actual module. That's what is causing the error.
  • But second, you don't include views, you include other url patterns. So unless myapp.views contains a top-level urlpatterns, you'll get an error as well.

Finally, as @c.grey pointed out, use path(), not url().

huangapple
  • 本文由 发表于 2020年1月6日 20:25:41
  • 转载请务必保留本文链接:https://go.coder-hub.com/59612107.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定