【问题标题】:TypeError: url() got an unexpected keyword argument 'name_space'TypeError: url() 得到了一个意外的关键字参数“name_space”
【发布时间】:2018-06-24 14:07:57
【问题描述】:

我知道这看起来像一个简单的问题,但我还是太新,无法自己解决,所以:

learning_log/urls.py

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

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'', 'learning_logs.urls',name_space='learning_logs'),
        ]

之前我遇到了以下错误,所以我删除了包含函数

配置不当:不支持在 include() 中指定命名空间而不提供 app_name。在包含的模块中设置 app_name 属性,或者传递一个包含模式列表和 app_name 的 2 元组。


learning_logs/urls.py

"""Defines URL patterns for learning_logs."""

    from django.conf.urls import  url

    from . import views

    urlpatterns=[
        #Homepage
        url(r'^$',views.index,name='index'),

    ]

views.py

from django.shortcuts import render

    #Create your views here.

    def index(request):
        """The home page for Learning Log"""
        return render(request,'learning_logs/index.html')

我正在使用 Django 2.0 和 Python 3.6.1

您能否告知我为什么会收到带有 name_space arg 的 TypeError,这与 Django 版本有关,非常感谢。

【问题讨论】:

    标签: python django typeerror django-urls


    【解决方案1】:

    您应该使用include() 来包含来自另一个urls.py 的网址模式

    url(r'', include('learning_logs.urls')),
    

    没有带下划线的name_space 参数。 include() 函数接受 namespace。但是,正如错误消息所示,您应该在包含的urls.py 中设置app_name,而不是使用namespace。您不需要使用namespace,除非您多次包含相同的网址。

    from . import views
    app_name = 'learning_logs'
    urlpatterns=[
        #Homepage
        url(r'^$',views.index,name='index'),
    
    ]
    

    【讨论】:

    • 谢谢@Alasdair,您的解决方案非常适合我。晚上好!
    【解决方案2】:

    你想要的参数可能是name而不是name_space

    url(r'', 'learning_logs.urls', name='learning_logs')
    

    (Django 2.0 url() Docs)

    【讨论】:

      猜你喜欢
      • 2016-09-17
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      • 2020-11-16
      相关资源
      最近更新 更多