0

(追加されたコードを編集)

ここでエラーが発生し続け、バインドされたメソッドを10進数に変換するように求められます。問題はこの行だと思います:

order_item = OrderItem(item=item.item_id, quantity=item.quantity, price=item.price, order=order)

Djangoはitem.priceを小数に変換することを望んでいると思いますが、その方法を理解できませんでした。動作しないdecimal.Decimal(str(item.price))を試しましたが、float(item.price)も動作しませんでした。いつものように、よろしくお願いします。

#cart.get_cart_items
def get_cart_items(request):
    return Cart.objects.filter(cart_id=_cart_id(request))

#models
class Cart(models.Model):
    cart_id = models.CharField(max_length=50)
    item_id = models.ForeignKey('store.Item', unique=False)
    date_added = models.DateTimeField(auto_now_add=True)
    quantity = models.IntegerField(default=1)

class Item(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=75)
    slug = models.SlugField(max_length=50, unique=True)
    is_active = models.BooleanField(default=True, blank=True)
    image1 =  models.ImageField(upload_to='img')
    image2 =  models.ImageField(upload_to='img', blank=True)
    image3 =  models.ImageField(upload_to='img', blank=True)
    image_caption1 = models.CharField(max_length=200, blank=True)
    image_caption2 = models.CharField(max_length=200, blank=True)
    image_caption3 = models.CharField(max_length=200, blank=True)
    price = models.DecimalField(max_digits=8, decimal_places=2)
    quantity = models.IntegerField(default=1)
    description = models.TextField()
    created = models.DateTimeField(auto_now_add=True)
    shipping_price = models.DecimalField(decimal_places=2, max_digits=6)
    categories = models.ManyToManyField(Category)



#views    
    def express_payment(request):
            user = request.user
            cart_subtotal = cart.cart_subtotal(request)

            if request.method == "POST":
                form = PaymentForm(request.POST)
                if form.is_valid():
                    order = form.save(commit=False)
                    order.buyer = request.user
                    order.transaction_id = "12345678901234567890"
                    order.save()
                    if order.pk:
                        cart_items = cart.get_cart_items(request)
                        for item in cart_items:
                            order_item = OrderItem(item=item.item_id, quantity=item.quantity, price=item.price, order=order)
                            order_item.save()
4

1 に答える 1

0

より多くのエラー情報を提供してください。そうしないと、意味のあるヘルプを提供できません。

編集:

class Itemとが同じものであると仮定すると、インスタンスを保存するには、、が必要だOrderItemと思います。usernameOrderItem

于 2012-08-17T04:19:53.947 に答える