2
这听起来很讨厌。我想设置在请求一个全局变量,这意味着我的意见,可以通过做指的是常数:设置全局常量跨越所有视图
getattr(request, 'CONSTANT_NAME', None)
然而,这个变量的值可能会在某个时候发生改变,这意味着我有以下代码在我看来之一:
setattr(request, 'CONSTANT_NAME', VALUE)
我知道我这样做肯定是不对的方式,但我想知道是否有达到我所期待的正确和清洁的方式。
我在想中间件,但不知道该怎么做。一个提示就足够了。
在此先感谢。
更新: 有人提到关于Session。我很确定它应该起作用。但是,它不够干净。通过使用会话,我需要创建与服务器维护的会话总数相同的常量。实际上,这个常量与服务器保持相同,并且必须是可变的!最后的要求是讨厌的部分。
您是否尝试过Django Sessions?这里是链接:https://docs.djangoproject.com/en/dev/topics/http/sessions/#bundled-serializers这让你得到并设置变量到会话中。或者,您可以使用context_processor在视图之间使用全局变量。 – 2014-08-27 22:05:08
最好的方法实际上取决于价值意味着什么以及如何使用它。如果它要与会话相关联,则将其添加到会话对象。如果是别的,你可能需要一个不同的解决方案。 – Louis 2014-08-27 22:05:21
@AronYsidoro Session是我最后一次打赌。我不想使用它的原因是我的变量不是会话特定的,而是服务器特定的。会议可行,但不够干净。上下文处理器不是选项。我不认为我改变了情境处理器 – 2014-08-27 22:10:18