render()只需要2个参数(给定1个)

时间:2017-04-26 08:50:16

标签: python django templates

我收到错误" render()只接受2个参数(给定1个)"将我的应用程序迁移到新服务器之后。 这是我的urls.py文件的内容:

urlpatterns = [
    url(r'^admin/', admin.site.urls),
        url(r'^warlist/', include('warlist.urls')),
        url(r'^warlist/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}),
]

在我的views.py中,我在下面做:

 template = loader.get_template('warlist/index.html')
 image = loader.get_template('warlist/image.html')
 table = loader.get_template('warlist/welcomepage_table.html')
 info = loader.get_template('warlist/info.html')
 return HttpResponse(image.render()+ template.render()+info.render()+table.render()+info_str+table_str)

上面的应用程序在我的旧服务器中使用给定的代码正常工作。

4 个答案:

答案 0 :(得分:1)

致电render()时:

 return HttpResponse(image.render()+ template.render()+info.render()+table.render()+info_str+table_str)

您需要将上下文传递给render()方法。

答案 1 :(得分:1)

这意味着.render()需要一个参数。 1 given是您调用该方法的对象。例如,image.render()将定义def render(self, argument):,其中self是您调用该方法的图像对象。

答案 2 :(得分:1)

渲染需要这样的东西

return render(request,'template_name.html',context)

如果您尝试使用HttpResponse。创建一个html文件以及要包含的其余文件,在“template_name.html”中将其包含在include('addition.html')中,然后返回HttpResponse

答案 3 :(得分:-1)

我可以通过将请求作为上下文传递到我的views.py中的.render()来解决这个问题,如下所示:

from django.template import RequestContext

def myview(request):
    template = loader.get_template('warlist/index.html')
    image = loader.get_template('warlist/image.html')
    table = loader.get_template('warlist/welcomepage_table.html')
    info = loader.get_template('warlist/info.html')
    return HttpResponse(image.render(RequestContext(request))+template.render(RequestContext(request))+info.render(RequestContext(request))+table.render(RequestContext(request))+info_str+table_str)

感谢Ke Li,Rednas和Daniel Roseman的支持。