对于我的一堆视图,我每次都传递了很多字典值(以及context_instance),所以我试图创建一个快捷方式:
def render_with_context(request, *args, **kwargs):
kwargs['context_instance'] = RequestContext(request)
kwargs['dict']['dare_count'] = Dare.objects.all().count()
kwargs['dict']['proof_count'] = Proof.objects.all().count()
kwargs['dict']['user_count'] = User.objects.all().count()
return render_to_response(*args, **kwargs)
但是它无法工作,因为django不会接受模板中的命名词典,它只需要一个匿名的{}词典。我该如何解决此问题,如何从值中删除名称?
由于
EDIT FIXED :(使用Han的建议**解包字典)
def render_with_context(request, args, kwargs):
kwargs['dare_count'] = Dare.objects.all().count()
kwargs['proof_count'] = Proof.objects.all().count()
kwargs['user_count'] = User.objects.all().count()
return render_to_response(args, kwargs, context_instance = RequestContext(request))
答案 0 :(得分:1)
试试render_to_response(template_name, kwargs)
。渲染到响应会将实际字典作为其参数,因此您可以重用字典kwargs
。 **kwargs
将字典解包为关键字样式参数,因此它不再是字典。