python - 在哪里初始化 Django session 变量?

标签 python django session

在我的 Django 项目中,我正在构建一个购物车系统。我想将购物车数据存储在 session 变量中,但我不知道在哪里初始化它。

我尝试过做这样的事情:

if 'cart' not in request.session:
    request.session['cart'] = {}

在自定义上下文处理器中,但上下文处理器似乎不会修改 session 数据。我还能在哪里放置这样的初始化?我不想把它放在我从购物车获取值(value)的每个地方。

最佳答案

你可以把它放在 custom request middleware 的一 block 中,但说实话,我认为这有点矫枉过正了。当您在 View 函数中需要购物车时,初始化购物车可能会更容易。请注意,如果该值尚不存在,您可以使用 request.session.get 自动获取默认值。像这样的东西:

def my_view(request):
    cart = request.session.get('cart', {})
    # Do stuff with cart
    request.session['cart'] = cart

关于python - 在哪里初始化 Django session 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4513676/

相关文章:

django - 验证/清理Django中非模型表单上的FileField?

python - 如何限制用户在 django 的年份范围内选择日期?

python - 允许用户在 django 中编辑一次

python - 加入 SQLAlchemy 中的子查询

python - 在 TensorFlow 中重命名已保存模型的变量范围

python - Pandas wide_to_long - 保留带有值的行 i 或仅保留一行空白

session - session 复制\tomcat集群的替代方案

java - NAT 网络正在合并 session

session - JSF2 + CDI @Produces 保持旧的 session 状态

python - 从数据框中查找新/现有客户