1

我想在我的请求对象中包含一个初始化的数据结构,使其可以在我的模板中的上下文对象中访问。我现在正在做的是在我的所有观点中手动传递它并且很烦人:

render_to_response(...., ( {'menu': RequestContext(request)}))

请求对象包含使用自定义上下文处理器注入的键值对。虽然这可行,但我希望有一种更通用的方式将请求对象的选定部分传递给模板上下文。我尝试通过通用视图传递它,但事实证明在解析 urlpatterns 列表时请求对象没有被实例化。

4

2 回答 2

1

为此,您可能必须创建自己的中间件。这样,您就可以在视图函数之前和之后完全控制请求。

中间件是一个非常强大的概念,并不像看起来那么难实现,但不要过度使用它——它使遵循程序流程变得困难。

于 2010-03-23T10:01:30.827 回答
0

我不一定能很好地理解你的问题。

要么您抱怨必须RequestContext在所有视图中包含,在这种情况下,您需要编写一个为您传递 RequestContext 的包装器。但是您仍然必须将请求传递给它。如果您也不想通过它,您可能必须按照 mikl 的建议创建自己的中间件。

或者,您抱怨必须在每个视图中传递大量菜单项。这是错误的做法,您需要定义一个模板上下文处理器,以确保这些默认情况下存在于模板中。

于 2010-03-23T10:37:08.113 回答