Recibo el error "render () toma exactamente 2 argumentos (1 dado)" después de migrar mi aplicación a un nuevo servidor. Aquí está el contenido de mi archivo 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}), ]y en mi views.py estoy haciendo a continuación:
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)La aplicación anterior funciona bien en mi antiguo servidor con el código dado.
Cuando llamas a render() :
return HttpResponse(image.render()+ template.render()+info.render()+table.render()+info_str+table_str) Debe pasar el contexto al método render() .
Significa que .render() espera un argumento. El 1 given es el objeto en el que llamas al método. Por ejemplo image.render() tendrá la definición def render(self, argument): donde self es el objeto de imagen en el que llama al método.
render toma algo como esto
return render(request,'template_name.html',context) si está intentando usar HttpResponse . cree un archivo html y el resto que desee incluir, inclúyalos así include('addition.html') en su 'template_name.html' y luego devuelva HttpResponse .