【问题标题】:Eclipse import error DjangoEclipse 导入错误 Django
【发布时间】:2012-12-13 08:23:59
【问题描述】:

我有一个用 Notepad++ 开发的 Django 程序,但现在我已经为 Eclipse 安装了 Pydev,所以,我想在 Eclipse 中开发程序。

我在购物车文件夹下有 cart.py 和 views.py 模块,但是当我在 views.py 文件中导入购物车模块时,我收到一个错误--Unresolved import:cart --- on the views.py 文件导入声明..任何帮助将不胜感激。

cart.py

from cart.models import CartItem
from catalog.models import Product
from django.shortcuts import get_object_or_404
from django.http  import HttpResponseRedirect
import decimal
import random
CART_ID_SESSION_KEY = 'cart_id'
#get the current users cart id,set new one if blank
def _cart_id(request):
    print 'Get Cart Id'
    if request.session.get(CART_ID_SESSION_KEY,'') == '':
        print 'Failing here start'
        request.session[CART_ID_SESSION_KEY] = _generate_cart_id()
        print 'Failing here End'

    return request.session[CART_ID_SESSION_KEY]
#
def _generate_cart_id():
    print 'Generate cart id'
    cart_id = ''
    characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*()' 
    cart_id_length = 50 
    for y in range(cart_id_length):
        cart_id += characters[random.randint(0,len(characters)-1)]
    return cart_id
#return all items form the current users cart
def get_cart_items(request):
    return CartItem.objects.filter(cart_id =_cart_id(request))
#add an item to the cart
def add_to_cart(request):
    postdata = request.POST.copy()
    #get product slug from post.data, return blank if empty
    product_slug = postdata.get('product_slug','')
    #get quantity added,return 1 if empty
    quantity = postdata.get('quantity',1)
    #fetch the product or return a missing page error
    p = get_object_or_404(Product, slug=product_slug)
    #get producsts in cart
    cart_products = get_cart_items(request)
    #check to see if the item is already in cart
    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()

views.py

import decimal
from django.shortcuts import render_to_response
from django.template import RequestContext
from ..cart import cart
from django.shortcuts import get_object_or_404

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)) 

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

# update quantity for single item 
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) 

# remove a single item from cart 
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() 

# gets the total cost for the current cart 
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 

【问题讨论】:

    标签: python django eclipse


    【解决方案1】:

    from ..cart import cart 前面的.. 可能是在惹你生气。 这意味着cart.py 在目录方面应该比views.py 高一级,这是从您的问题得出的 - 并非如此。

    【讨论】:

    • 那么import cart 怎么样?查看views.py 中的代码,这是它所期望的。虽然我在您的cart.py 代码中没有看到update_cart()cart_subtotal()
    猜你喜欢
    • 1970-01-01
    • 2011-09-30
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-27
    • 2012-01-29
    • 1970-01-01
    相关资源
    最近更新 更多