-1

Notepad++ で開発した Django プログラムを持っていますが、今は Eclipse 用の Pydev をインストールしているため、今後は Eclipse でプログラムを開発したいと考えています。

カートフォルダーの下にcart.pyとviews.pyモジュールがありますが、カートモジュールをviews.pyファイルにインポートすると、views.pyファイルのインポートステートメントでエラー--未解決のインポート:カート---が発生します..どんな助けでも大歓迎です。

カート.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()

ビュー.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 
4

1 に答える 1

0

..from ..cart import cartはおそらくあなたをいじっています。これは、cart.pyディレクトリごとに1レベル上にある必要があることを意味views.pyします。これは、あなたの質問から導き出されたものですが、そうではありません。

于 2012-12-28T00:58:20.060 に答える