Django上下文处理器和URL参数

时间:2016-11-25 16:56:11

标签: django middleware

我有一些代码在我的Django视图开始时重复。它基本上只是在上下文中添加了一些变量,但是基于URL参数,例如

def someView(request, id):
   target = Target.objects.get(id=id)
   # name will be added to ctx
   name = target.name

(添加了更多属性以及来自相关模型的其他属性,但这给出了一般的想法 - 每个视图的开头有相当多的重复代码行)

我认为通过利用Django的上下文处理器可以使我的代码更干,但似乎这些不能访问URL参数?

还有另一种方法可以避免这些重复的线条吗?也许中间件或其他东西?

1 个答案:

答案 0 :(得分:2)

您可以通过resolver_match属性通过request访问网址参数。例如,您可以request.resolver_match.kwargs['id']获取ID kwarg。