Skip to main content
 首页 » 编程设计

python之Django:render_to_response 不起作用

2024年10月24日32hnrainll

我有一个模板 perfil.html 并想将其发送给它:

return render_to_response('perfil.html', query_data,  context_instance=RequestContext(request), {'pseudonimo': usuario.pseudonimo,'seguidores': seguidores(usuario.pseudonimo), 'sigue':sigue(usuario.pseudonimo), 'posts':"En pruebas"}) 

但它不起作用。这是我的错误:

Request Method: GET 
Request URL:    http://localhost:8000/mi_perfil/ 
Django Version: 1.8 
Exception Type: SyntaxError 
Exception Value: non-keyword arg after keyword arg (views.py, line 181) 
Exception Location: /home/rebecca/DSI/pretec/pretec/urls.py in <module>, line 3 
Python Executable:  /home/rebecca/DSI/env-pretec/bin/python 
Python Version: 2.7.3 

如果我这样做:

return render(request,'perfil.html', {'pseudonimo': usuario.pseudonimo,'seguidores': seguidores(usuario.pseudonimo), 'sigue':sigue(usuario.pseudonimo), 'posts':"En pruebas"}) 

它有效,如果我这样做:

return render_to_response('perfil.html', query_data, context_instance=RequestContext(request)) 

它也有效,但我想在 render_to_response 中包含这两个选项

这是我在 views.py 中的函数:

def mi_perfil(request): 
   usuario = Usuario.objects.get(pseudonimo = request.session['member_id']) 
   query = Usuario.objects.all() 
 
   query_data = { 
       "user_data" : query 
   } 
   print query_data 
   return render_to_response('perfil.html', query_data, context_instance=RequestContext(request), {'pseudonimo': usuario.pseudonimo,'seguidores': seguidores(usuario.pseudonimo), 'sigue':sigue(usuario.pseudonimo), 'posts':"En pruebas"}) 

我做错了什么?我该如何解决?

请您参考如下方法:

Django 非常清楚地告诉你你的错误

Exception Value: non-keyword arg after keyword arg (views.py, line 181) 

在关键字 arg (context_instance=....) 之后有一个非关键字参数(那个字典)

至于如何修复,呃,你能不能……把那本字典放到你的语境中开始?您只能使用一个上下文字典(请参阅 https://docs.djangoproject.com/en/1.8/topics/http/shortcuts/)

def mi_perfil(request): 
     usuario = Usuario.objects.get(pseudonimo = request.session['member_id']) 
     query = Usuario.objects.all() 
 
     context = { 
          "user_data" : query 
          'pseudonimo': usuario.pseudonimo, 
          'seguidores': seguidores(usuario.pseudonimo),    
          'sigue':sigue(usuario.pseudonimo), 
          'posts':"En pruebas", 
                } 
     print context 
     return render_to_response('perfil.html', context,context_instance=RequestContext(request))