Home > front end >  Django queryset to list of ids with integer values
Django queryset to list of ids with integer values

Time:02-04

I need to retrieve IDs from multiple queries and add them into a list.

products = Product.objects.filter(category="Apple").values_list("product_id", flat=True)

reviewed = Reviews.objects.filter(category="Apple").values_list("product_id", flat=True)

selected_ids = [10,20,30]

Then I tried

all_products = selected_ids   products   reviewed

This raised error as list cannot be added to queryset.

so, I tried,

all_product_ids = selected_ids   list(products)   list(reviewed)

This works but, all_products has a mix of int and tuple values [10, 20, 30, (2,), (2,), (1,)]

I need them to be [10, 20, 30, 2, 2, 1]

CodePudding user response:

You can use union and then add them with the list:

qset_ids = Product.objects.filter(category="Apple").values_list("product_id").union(Reviews.objects.filter(category="Apple").values_list("product_id"))

all_product_ids = selected_ids   list(qset_ids.values_list('product_id',flat=True))
  • Related