2012-05-31 62 views
2

我渲染Django的表单数据的模板,但每次当我访问的网址时就说明我这个错误:“_wrapped_view()至少需要1个参数”错误是什么意思?

_wrapped_view() takes at least 1 argument (0 given) 

方法views.py:

@login_required        
def subnet_network_detail(request): 
    if request.method == 'POST': 
     form = NetworkCreateForm(request.POST) 
     if form.is_valid(): 
      subnet = form.data['Subnet_Address'] 
      ip = form.data['IP_Address'] 
      user_hosts = get_hosts(user=request.user) 
      hosts_list = host_subnet(user_hosts,subnet,ip) 
      import pdb;pdb.set_trace() 
    extra_context = { 
     'hosts_list': hosts_list 
     } 
    return direct_to_template(request, 'networks/subnet_network.html',extra_context) 

和网址。 py:

url(r'^network/netmask/select/$', 
    'subnet_network_detail', name='subnet_network_detail') 

我从其他有关这个错误的问题中读到,但没有得到任何想法。如何解决它?

+0

可以运行通过调试代码,看看哪条线路它正在挂上? – chrisfs

回答

2

direct_to_template设计为您的urls.py使用:

url(r'^network/netmask/select/$', 'direct_to_template', {'template':'networks/subnet_network.html'}, name='subnet_network_detail') 

您应该使用renderrender_to_response从视图中。

如果您正在使用Django 1.3或更高版本可以使用:

from django.shortcuts import render 
... 
return render('networks/subnet_network.html', extra_context) 

或者,如果您使用的是较早版本:

from django.shortcuts import render_to_response 
from django.template import RequestContext 
... 
return render_to_response('networks/subnet_network.html', extra_context, RequestContext(request)) 
+0

如果因为使用*** direct_to_template ***而发生此错误,请给我更多解释:) 正如我所提到的,我没有找到任何正确的解决方案。我的意思是什么是渲染的链接:) –

+0

那么,首先你可以看看使用'render'或'render_to_response'修复了这个问题吗? – dgel

+0

首先,我尝试了相同的代码,它显示了这个错误***局部变量'hosts_list'在赋值之前被引用***如果你解释我这个,它会更好。然后我删除了整个代码来隐藏那个错误,我的意思是上下文部分,它工作正常!在使用render_to_response –

相关问题