我正在使用 Django 开发电子商务网站。目前正在开发我第一次在 django 中使用 session 的购物车应用程序。我在设置和检索打印时为空的会话数据时遇到问题。PS:会话中的数据将用于为用户检索购物车或更新购物车(如果购物车是作为访问者创建的)。无法检索会话数据导致每次刷新浏览器时都会创建一个新会话。设置.PYINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', # user apps 'carts', 'products', 'search', 'tags', # 3rd class app 'bootstrap4',]MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',]购物车APP模型.PYfrom django.conf import settingsfrom django.db import modelsfrom products.models import ProductUser = settings.AUTH_USER_MODELclass CartManager(models.Manager): def new(self, user=None): user_obj = None if user is not None: if user.is_authenticated: user_obj = user return self.model.objects.create(user=user_obj)class Cart(models.Model): user = models.ForeignKey(User, null=True, blank=True, on_delete=models.DO_NOTHING) products = models.ManyToManyField(Product, blank=True) total = models.DecimalField(default=0.00, max_digits=100, decimal_places=2) timestamp = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) objects = CartManager() def __str__(self): return str(self.id)
1 回答

临摹微笑
TA贡献1982条经验 获得超2个赞
我认为您的问题可能是这一行中的错字:
request.session['card_id'] = cart_obj.id
如果您仔细观察,您正在设置 acard_id
但稍后尝试获取cart_id
.
添加回答
举报
0/150
提交
取消