0

对于我的一堆视图,我每次都传递了很多字典值(以及 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 不接受模板中的命名字典,它只需要一个匿名 {} 字典。我应该如何解决这个问题,如何从值中删除名称?

谢谢

编辑修复:(使用韩的**解包字典的建议)

显着变化:['dict'] 消失了,我们只是将 context_instance 作为参数传递,字典没有解包。

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))
4

1 回答 1

1

试试render_to_response(template_name, kwargs)。Render to response 将实际字典作为其参数,因此您可以重用字典kwargs**kwargs将字典解包为关键字样式参数,因此它不再是字典。

于 2012-09-20T20:22:23.500 回答