python - 无法导入姓名

标签 python django import

我在 Django 项目中使用 pyDev,但遇到以下问题:

我的应用程序的views.py 文件之一中总是出现“无法导入名称”错误。

这是:

from cart import cart
from django.template.context import RequestContext
from django.shortcuts import render_to_response


def show_cart(request,template_name="cart/cart.html"):
    if request.method == 'POST':
        postdata = request.POST.copy()
        if postdata['submit'] == 'Remove':
            cart.remove_from_cart(request)
        if postdata['submit'] == 'Update':
            cart.update_cart(request)
    cart_items = cart.get_cart_items(request)
    page_title = 'Shopping Cart'
    cart_subtotal = cart.cart_subtotal(request)
    return render_to_response(template_name,locals(),
                              context_instance=RequestContext(request))

问题出在第一次导入时。

这是我尝试导入的模块:

from catalog.models import Product 
from models import CartItem
from django.shortcuts import get_object_or_404
from django.http import HttpResponseRedirect
import decimal
import random


CART_ID_SESSION_KEY = 'cart_id'

def _cart_id(request):
    if request.session.get(CART_ID_SESSION_KEY,'')=='':
        request.session[CART_ID_SESSION_KEY] = _generate_cart_id()
    return request.sessionp[CART_ID_SESSION_KEY]

def _generate_cart_id():
    cart_id = 'aaa'
    characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyuz1234567890!@#$%^&*()!'
    cart_id_length = 50
    for y in range(cart_id_length):
        cart_id += characters[random.randint(0,len(characters)-1)]
    return cart_id


def get_cart_items(request):
    return CartItem.objects.filter(cart_id=_cart_id(request))

def add_to_cart(request):
    postdata = request.POST.copy()
    product_slug = postdata.get('product_slug','')
    quantity = postdata.get('quantity',1)
    p = get_object_or_404(Product,slug = product_slug)
    cart_products = get_cart_items(request)
    product_in_cart = False
    for cart_item in cart_products:
        if  cart_item.product.id == p.id:
            cart_item.augment_quantity(quantity)
            product_in_cart = True

    if not product_in_cart:
        ci = CartItem()
        ci.product = p
        ci.quantity = quantity
        ci.cart_id= _cart_id(request)
        ci.save()    


def cart_distinct_item_count(request):
    return get_cart_items(request).count()



def  get_single_item(request, item_id):
    return get_object_or_404(CartItem,id=item_id,cart_id=_cart_id(request)) 


def update_cart(request):
    postdata = request.POST.copy()
    item_id = postdata['item_id'] 
    quantity = postdata['quantity']
    cart_item = get_single_item(request,item_id)
    if cart_item:
        if int(quantity)>0:
            cart_item.quantity = int(quantity)
            cart_item.save()
        else:
            remove_from_cart(request) 

def remove_from_cart(request):
    postdata = request.POST.copy()
    item_id = postdata['item_id']
    cart_item = get_single_item(request,item_id)
    if cart_item:
        cart_item.delete()

def cart_subtotal(request):
    cart_total = decimal.Decimal('0.00')
    cart_products = get_cart_items(request)
    for cart_item in cart_products:
        cart_total += cart_item.product.price * cart_item.quantity
    return cart_total                    

最佳答案

假设第二 block 代码是cart.py:

看起来您应该只执行导入购物车,因为您在调用中指定了类:cart.METHOD

您收到该错误消息是因为 cart.py 中没有名为 cart 的类或方法。

关于python - 无法导入姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26640899/

相关文章:

xml - 使用 Drupal8 从 XML 文件导入数据

python - 删除了模块的交互功能。如何重新导入? importlib.reload 没有帮助

python - 如何部署 Django 1.6、Python 3.3 和 Apache?

Django 管理列表过滤器

java - 如何引用另一个类中的字符串?

php - excel导入MySQL后出现未知字符,如何避免?

Python 看不到带有 Jupyter Notebook 的包

python - 实现接口(interface)的类的类型提示

Python将int写入文件

python - 在 Django 中重命名模型(表)