广告区
广告区
关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)
发布于2022-05-21 12:14 阅读(709) 评论(0) 点赞(17) 收藏(0)
我正在尝试创建一个 django 购物车页面。我在将产品/计划添加到购物车时遇到问题,并且我在显示购物车中的物品数量时也遇到问题。我做了一个 context.py 来尝试添加到购物车,但我不太确定我做错了什么。我收到一条错误消息
ImportError at /
Module "cart.context" does not define a "cart_context" attribute/class
这是我的 context.py 文件
from django.shortcuts import get_object_or_404
from plans.models import Plans
def cart_contents(request):
"""
Enables the cart contents to be shown when
rendering any page on the site.
"""
cart = request.session.get('cart', {})
cart_items = []
total = 0
product_count = 0
for (id, quantity) in cart.items():
product = get_object_or_404(Product, pk=id)
total += quantity * product.price
product_count += quantity
cart_items.append({'id': id, 'quantity': quantity,
'product': product})
return {'cart_items': cart_items, 'total': total,
'product_count': product_count}
这是我的购物车视图
from django.shortcuts import render, redirect, reverse
# Create your views here.
def view_cart(request):
""" A view that renders the cart page """
return render(request, 'cart/cart.html')
def add_to_cart(request, item_id):
""" Add plan to shopping cart """
cart = request.session.get('cart', {})
cart[item_id] = cart.get(item_id, 1)
request.session['cart'] = cart
return redirect(reverse('plans'))
在此处添加是我的导航栏购物车链接,我希望在其中显示数字
<li class="nav-item">
<a class="nav-link" href="{% url 'view_cart' %}"><i class="fa fa-shopping-cart"></i> Cart
{% if plan_count > 0 %}
<label class="badge badge-warning">{{ plan_count }}</label>
{% endif %}
</a>
</li>
这是我的settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
os.path.join(BASE_DIR, 'templates', 'allauth'),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request', # Required by Allauth
'django.template.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'cart.context.cart_context',
'ms4.context.orderCount'
],
},
},
]
请将 context.py 重命名为context_processors.py 并进行如下编辑。
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
os.path.join(BASE_DIR, 'templates', 'allauth'),
],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request', # Required by Allauth
'django.template.context_processors.static',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'cart.context_processors.cart_context',
'ms4.context.orderCount'
],
},
},
]
请试试这个。
关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)
关注公众号回复python,免费领取 全套python视频,回复充值+你的账号,免费为您充值1000积分
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/1533944/deb4f2a9aa3960078c97/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!