【问题标题】:Django context processors and URL argumentsDjango 上下文处理器和 URL 参数
【发布时间】:2017-04-10 03:01:16
【问题描述】:

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

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

(添加了更多的属性和来自相关模型的其他属性,但这给出了大致的思路——每个视图的开头都有很多行重复代码)

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

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

【问题讨论】:

    标签: django middleware


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 2011-01-15
      • 2010-11-04
      • 2013-08-31
      • 1970-01-01
      相关资源
      最近更新 更多