广告区

广告区


本站消息

站长简介/公众号

关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

/ Module“cart.context”处的 ImportError 未定义“cart_context”属性/类

发布于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'
            ],
        },
    },
]

请试试这个。







所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1533944/deb4f2a9aa3960078c97/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

17 0
收藏该文
已收藏

评论内容:(最多支持255个字符)