TypeError: __init__() takes 1 positional argument but 2 were given django

TypeError: __init__() takes 1 positional argument but 2 were given django

这是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__() takes 1 positional argument but 2 were given"

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

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'))

您需要在 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()),
]