首页 > 解决方案 > 如何在 Django 中从 POST 请求中提取数组

问题描述

我正在尝试使用 Django 从 POST 请求中提取一个数组。


def settlements_orders(request):

    database = "####"
    if request.method == 'POST':
        first_date = request.POST.get('first_date', False)
        last_date = request.POST.get('last_date', False)
        brands = request.POST.getlist('brands[]')
    else:
        first_date = '2020-01-01'
        last_date = '2020-05-13'
        brands= ['ICON-APPAREL']

    settlements_orders = SettlementOrders.objects.using(database)\
        .filter(posted_date__date__range=[first_date, last_date]) \
        .filter(sku__brand__in=brands) \
        .select_related('sku').select_related('posted_date') \
        .values('sku__company','sku__brand','sku__department','sku__category','sku__sub_category',
                'sku__parent_asin','sku__asin','sku__vendor', 'sku__color','sku__size','sku__case_pack',
                'posted_date__year', 'posted_date__month'
                )\
        .annotate(count=Count('order_id'),
                  qty_sold=Sum('quantity_sold'),
                  qty_returned=Sum('quantity_returned'),
                  order_revenue=Sum('order_revenue'),
                  refund_revenue=Sum('refund_revenue'),
                  promotion=Sum('promotion'),
                  giftwrap_collected=Sum('giftwrap_collected'),
                  giftwrap_paid=Sum('giftwrap_paid'),
                  shipping_fees_collected=Sum('shipping_fees_collected'),
                  shipping_fees_paid=Sum('shipping_fees_paid'),
                  sales_tax_collected=Sum('sales_tax_collected'),
                  sales_tax_paid=Sum('sales_tax_paid'),
                  shipping_tax_collected=Sum('shipping_tax_collected'),
                  shipping_tax_paid=Sum('shipping_tax_paid'),
                  fulfillment_fees=Sum('fulfillment_fees'),
                  comission_fees=Sum('comission_fees'),
                  closing_fees=Sum('closing_fees'),
                  other_fees=Sum('other_fees'),
                  restock_fees=Sum('restock_fees'),
                  goodwill_paid=Sum('goodwill_paid'),
                  goodwill_reimbursed=Sum('goodwill_reimbursed'),
                  return_fees=Sum('return_fees'),
                  reimbursements=Sum('reimbursements'),
                  margin=Sum('margin')
                  )
    return JsonResponse(settlements_orders[::1], safe=False)

我正在使用数组过滤数据当我发出 GET 请求时,我返回了数据,但在 POST 请求中,我得到了 500 响应。任何帮助,将不胜感激。

标签: djangodjango-views

解决方案


推荐阅读