Django 基于会话的模型 - settings.py 中的 id 值?

邦高凤凰

我正在学习为在线商店构建产品购物车应用程序。但是当我在阅读别人的应用程序时,我发现了一些我无法理解的东西。

settings.py>
CART_ID = 'cart_in_session'


cart.py>
from decimal import Decimal
from django.conf import settings
from shop.models import Product

from coupon.models import Coupon

class Kart(object):
    def __init__(self, request):
        self.session = request.session
        kart = self.session.get(settings.CART_ID)
        if not kart:
            kart = self.session[settings.CART_ID] = {}
        self.kart = kart

我无法获得这部分代码片段:如果不是卡丁车:kart = self.session[settings.CART_ID] = {}

它有两个“=”符号,我想知道它是否用于赋值,如果它真的是赋值,那么为什么它将 CART_ID 的值(“cart_in_session”为其匹配的键 CART_ID)设置为 {}

迪克格罗滕

该语句既kart为购物车创建了一个新的会话密钥,又为购物车创建了会话密钥,将两者都设置为一个空的购物车{}

  • 您可以通过=在 python 中链接来将多个变量分配给相同的值和这三行是一样的:

    temp = {}
    kart = temp    
    self.session[settings.CART_ID] = temp
    

    因此将kart和 session 变量分配给同一个空字典。

  • CART_ID是一个奇怪的名字。它基本上是用于在会话中存储卡的密钥。我会命名它CART_KEY所有这些代码所做的就是初始化一个空购物车并将其添加到会话中。

注意:有关Python 中链式赋值的更多信息,请参见此处

注2:由于我们要指定一个字典,都kartsession[CART_ID]内存都指向同一个字典。如果您kart通过添加产品进行更改,它将自动反映在会话中,反之亦然。

注3:@DanielRoseman 的代码使这一点更加清晰。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Django的settings.py中导入模型

来自分类Dev

Django:是否根据URL在settings.py中动态设置SITE_ID?

来自分类Dev

如何在Django settings.py中访问模型或视图属性?

来自分类Dev

在django settings.py中包含应用程序

来自分类Dev

Django中的Local&Prod Settings.py

来自分类Dev

在Django应用的settings.py中检测URL方案

来自分类Dev

如何在 Django settings.py 中引用 URL

来自分类Dev

使用settings.py或models.py在Django中自动创建数据库

来自分类Dev

如何基于同一模型中其他字段的值设置Django模型字段值

来自分类Dev

如何基于不同模型中其他字段的值设置Django模型字段的值

来自分类Dev

如何在我的Django项目的settings.py文件中将身份验证后端设置为默认值(扩展的AbstractBaseUser模型)

来自分类Dev

如何在settings.py中定义常量并在Django的视图函数中访问它们

来自分类Dev

如何从终端中的Django应用程序的settings.py中打印BASE_DIR?

来自分类Dev

如何基于urls.py Django中某个查询参数的值将URL路由到单独的视图?

来自分类Dev

Heroku Django选择settings.py

来自分类Dev

django:无法导入settings.py

来自分类Dev

settings.py中的Django DATE_FORMAT忽略格式或被覆盖

来自分类Dev

如何让Django执行远程芹菜任务?似乎忽略settings.py中的BROKER_URL

来自分类Dev

django manage.py-有没有办法从环境中获取--settings参数?

来自分类Dev

我不小心在django中删除了我的Sceret Key表单settings.py

来自分类Dev

settings.py 中模板文件夹的 Django 路径不正确

来自分类Dev

Django在unittest中覆盖settings.py OBJECT不起作用

来自分类Dev

settings.py 中关于 Django 电子邮件主机数据的安全问题

来自分类Dev

仅在运行 pytest 时更改 settings.py 中的 Django 设置 ALLOWED_HOSTS

来自分类Dev

基于属性值的Django模型继承?

来自分类Dev

如何按基于Django中其他模型计算的值排序?

来自分类Dev

如何基于Django中ModelChoiceField中选择的值命名模型实例?

来自分类Dev

在JavaScript中获取Django网站的会话ID

来自分类Dev

在模板Django中设置会话值

Related 相关文章

  1. 1

    在Django的settings.py中导入模型

  2. 2

    Django:是否根据URL在settings.py中动态设置SITE_ID?

  3. 3

    如何在Django settings.py中访问模型或视图属性?

  4. 4

    在django settings.py中包含应用程序

  5. 5

    Django中的Local&Prod Settings.py

  6. 6

    在Django应用的settings.py中检测URL方案

  7. 7

    如何在 Django settings.py 中引用 URL

  8. 8

    使用settings.py或models.py在Django中自动创建数据库

  9. 9

    如何基于同一模型中其他字段的值设置Django模型字段值

  10. 10

    如何基于不同模型中其他字段的值设置Django模型字段的值

  11. 11

    如何在我的Django项目的settings.py文件中将身份验证后端设置为默认值(扩展的AbstractBaseUser模型)

  12. 12

    如何在settings.py中定义常量并在Django的视图函数中访问它们

  13. 13

    如何从终端中的Django应用程序的settings.py中打印BASE_DIR?

  14. 14

    如何基于urls.py Django中某个查询参数的值将URL路由到单独的视图?

  15. 15

    Heroku Django选择settings.py

  16. 16

    django:无法导入settings.py

  17. 17

    settings.py中的Django DATE_FORMAT忽略格式或被覆盖

  18. 18

    如何让Django执行远程芹菜任务?似乎忽略settings.py中的BROKER_URL

  19. 19

    django manage.py-有没有办法从环境中获取--settings参数?

  20. 20

    我不小心在django中删除了我的Sceret Key表单settings.py

  21. 21

    settings.py 中模板文件夹的 Django 路径不正确

  22. 22

    Django在unittest中覆盖settings.py OBJECT不起作用

  23. 23

    settings.py 中关于 Django 电子邮件主机数据的安全问题

  24. 24

    仅在运行 pytest 时更改 settings.py 中的 Django 设置 ALLOWED_HOSTS

  25. 25

    基于属性值的Django模型继承?

  26. 26

    如何按基于Django中其他模型计算的值排序?

  27. 27

    如何基于Django中ModelChoiceField中选择的值命名模型实例?

  28. 28

    在JavaScript中获取Django网站的会话ID

  29. 29

    在模板Django中设置会话值

热门标签

归档