我收到错误" 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)
上面的应用程序在我的旧服务器中使用给定的代码正常工作。
答案 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的支持。