【问题标题】:TypeError: __init__() takes 1 positional argument but 2 were given djangoTypeError: __init__() 接受 1 个位置参数,但 2 个被给定 django
【发布时间】:2018-11-15 08:35:29
【问题描述】:

这是urls.py

from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    url(r'^/', include('main.urls', namespace='Home')),

]

这是views.py

from django.shortcuts import render,HttpResponse,render_to_response,HttpResponseRedirect
from django.views.generic import TemplateView
from main.models import *

class leaflet(TemplateView):
    template_name = "file.html"

当我写这个代码模板没有显示时,它会抛出一个错误:

__init__() 接受 1 个位置参数,但给出了 2 个"

你能在我的代码中找到错误吗?

【问题讨论】:

  • 你能把所有的traceback都放回去吗?
  • 你能给我们django版本吗?因为如果它是 django 2.x,namesapces 是在应用程序的 urls.py 中使用app_name 变量定义的,并且删除了 url 函数中包含的命名空间
  • main.urls 是什么样的?您提供的 urls.py 甚至没有引用您的视图。是的,请发布回溯。

标签: python django django-models django-urls


【解决方案1】:

需要在urlpatterns中添加leaflet.as_view()

urls.py

from django.conf.urls import include, url
from django.contrib import admin
from main.views import leaflet

urlpatterns = [
   url(r'^admin/', include(admin.site.urls)),
   url(r'^/', include('main.urls', namespace='Home')),
   url(r'^test/', leaflet.as_view()),
]

【讨论】:

    【解决方案2】:

    urls.py应该是这样的

    from django.conf.urls import include, url
    from django.contrib import admin
    urlpatterns = [
        url(r'^admin/', include(admin.site.urls)),
        url(r'^/', include('main.urls'), name='Home'),
    
    ]
    

    更新: 如果您使用 django-version 1.8 或更早版本,则应在 include 函数中添加 app_name 参数

    url(r'^/', include('main.urls', namespace='Home', app_name='polls'))
    

    【讨论】:

    • 这没有意义,name可能没有传递给url函数,所以,这并不能说明问题!
    • name 被传递给 url 一个名称,以便可以从 Reverse 方法调用它。给每个 url 命名是个好习惯
    • 是的,这与他的问题无关。在某个地方,他调用了一个错误的构造函数。
    • 完全同意这是一种很好的做法,但你的回答并没有解决问题,这是答案的目标,只是建议,我认为这对任何方式都没有帮助
    • @IanKirkpatrick 我认为这是 django 版本问题(请参阅我对问题的评论)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-22
    • 2020-01-11
    • 2019-10-27
    • 1970-01-01
    • 2021-10-11
    • 1970-01-01
    相关资源
    最近更新 更多