如何在djang中正确保存表行值

2024-09-25 00:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个用于订单和订单项的django模型阿贾克斯问题是,对于每个被激发的ajax调用,它都会为orders创建一个数据库记录行。什么我在做什么错了。谢谢你知道吗

//视图

class ProductListView(TemplateView):
    def post(self,request,*args,**kwargs):
        if request.is_ajax():
            line_items = {}
            product_id = request.POST.get("product_id")
            price = request.POST.get("price")
            quantity = request.POST.get("quantity")
            subtotal = request.POST.get("subtotal")
            grandtotal = request.POST.get("grandtotal")
            products = CustomerPrice.objects.get(id=product_id)
            product_name = products.product

            line_items = {
              "product_id":product_name,
              "price":price,
              "quantity":quantity,
              "subtotal":subtotal,
              "grandtotal":grandtotal,
            }


        Order.objects.place('Credit Card','Pending',
                grandtotal,subtotal,125,line_items,request.user)
       return super(ProductListView,self).get(request)

//模型管理器

class OrderManager(models.Manager):
    def place(self,payment_method,payment_status,
              grandtotal,sub_total,po_number,lineitems,username):

        charge_amount = float(lineitems['grandtotal'])
        order = self.create(customer=username,
                            sub_total=lineitems['subtotal'],
                            total = lineitems['grandtotal'],
                            charge_amount=charge_amount,
                            #payment_method=payment_method,
                            payment_status=payment_status,
                            order_number=po_number)
                            #billing_address=billing_address,
                            #updated_by=username,
                            #created_by=username)

        OrderItem.objects.create(order=order,
                                 product=lineitems['product_id'],
                                 price=lineitems['price'],
                                 quantity=lineitems['quantity'],
                                 sub_total=lineitems['subtotal'],
                                 total =lineitems['subtotal'],
                                 #tax_rate=tax_rate,
                                 #tax_method=tax_method,
                                 updated_by=username,
                                 created_by=username)

        return order

Tags: idgetrequestusernameorderproductpaymentpost
1条回答
网友
1楼 · 发布于 2024-09-25 00:32:34

我会给你一个如何实施的想法。使用有效负载发出单个ajax post请求。你知道吗

{customer: "", payment_method: "" ... line_items: [ { product_id: '101', quantity: '2', ... }, { product_id: '102', quantity: '1', ... }] }

现在在django视图中,用customerpayment_method细节等创建一个Order对象,循环遍历每个行项目并创建一个对应的OrderLineItem对象。你知道吗

相关问题 更多 >