if i want to implement this for delete multiple object from many to many field i need to create a dynamic filter like the below one.
PizzaToppingRelationship = Pizza.toppings.through
PizzaToppingRelationship.objects.filter(
Q(pizza=my_pizza, topping=pepperoni) |
Q(pizza=your_pizza, topping=pepperoni1) |
Q(pizza=your_pizza2, topping=mushroom)
).delete()
However, I want to create this query filter from a list of query objects. How to do that?
e.g. [{"pizza": <my_pizza>, "topping": }, {"pizza": <your_pizza>, "topping": }, {"pizza": <your_pizza2>, "topping": }]
You can convert this into a Q
object:
from django.db.models import Q
data = [
{'pizza': my_pizza, 'topping': pepperoni},
, {'pizza': your_pizza, 'topping': pepperoni1}
, {'pizza': your_pizza2, 'topping': mushroom}
]
PizzaToppingRelationship = Pizza.toppings.through
PizzaToppingRelationship.objects.filter(
Q(*[Q(**dati) for dati in data], _connector=Q.OR)
).delete()