Django 上下文处理器和 URL 参数

Django context processors and URL arguments

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

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

(添加了更多属性和相关模型的其他属性,但这给出了总体思路---每个视图的开头有相当多的重复代码行)

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

还有其他方法可以避免这些重复行吗?也许是中间件或其他东西?

您可以通过 request 通过 resolver_match 属性访问 URL 参数。因此,例如,您可以执行 request.resolver_match.kwargs['id'] 来获取 ID kwarg。