对于我的一堆视图,我每次都传递了很多字典值(以及 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))