Как получить только значения из дикты запроса

if request.method == 'POST': 
        product=request.POST.get('product')
        upload_month = request.POST.get('upload_month') 
        un_month= Planning_quantity_data.objects.values('month').filter(product=product,upload_month=upload_month).distinct()
        print(un_month)

<QuerySet [{'month': 'Mar_22'}, {'month': 'Apr_22'}, {'month': 'May_22'}, {'month': 'Jun_22'}]>

я хочу получить только значения без ключа и сохранить их в новом списке в файле views.py like newlist = ['Mar_22' , 'Apr_22', 'May_22','Jun_22']

пока я использую

  un_month1=list(un_month.values())
        print(un_month1)

он отображается следующим образом

[{'id': 1, 'upload_month': 'Mar_22', 'product': 'MAE675', 'material_code': 'MAE675 (MEMU â OB) RCF', 'order_type': 'Onhand', 'BOM_CODE': '675MEMU', 'month': 'Mar_22', 'quantity': 3, 'po_value': '37/5', 'remarks': 'Qty in Rakes. Отправлено 3-5 граблей частичного количества', 'empid': None}, {'id': 2, 'upload_month': 'Mar_22', 'product': 'MAE675', 'material_code': 'MAE675 (MEMU â OB) RCF', 'order_type': 'Onhand', 'BOM_CODE': '675MEMU', 'month': 'Apr_22', 'quantity': 3, 'po_value': '37/5', 'remarks': 'Qty in Rakes. Отправлено 3-5 граблей частичного количества', 'empid': None}, {'id': 3, 'upload_month': 'Mar_22', 'product': 'MAE675', 'material_code': 'MAE675 (MEMU â OB) RCF', 'order_type': 'Onhand', 'BOM_CODE': '675MEMU', 'month': 'May_22', 'quantity': 3, 'po_value': '37/5', 'remarks': 'Qty in Rakes. Отправлено 3-5 граблей частичного количества', 'empid': None}]

Если вы используете values_list() [django-docs] с одним полем, вы можете использовать flat=True для возврата QuerySet единичных значений, то есть:

if request.method == 'POST':
    product=request.POST.get('product')
    upload_month = request.POST.get('upload_month') 
    newlist = list(Planning_quantity_data.objects.filter(product=product,upload_month=upload_month).values_list('month', flat=True))
    print(newlist)

А это выведет только ['Mar_22', 'Apr_22', 'May_22', 'Jun_22'] для вас.

Вернуться на верх