To dynamically compose an OR query filter in Python Django, we can call filter with Q objects combined with |.
For instance, we write
values = [1,2,3]
queries = [Q(pk=value) for value in values]
query = queries.pop()
for item in queries:
query |= item
Article.objects.filter(query)
to create the queries list with a list of Q object with the conditions we want to filter by.
Then we loop through the queries to combine them with |= into query.
Finally, we call filter with query to filter by all the conditions.