Изучив ORM я смог сократить кол-во запросов в БД c 21 до 4.
for additive in additives:
for i in product.additives\
.values("category_additive__title",
"category_additive__price")\
.filter(is_active=True, institution=institution):
if additive["title"] == i["category_additive__title"] and \
additive["price"] != int(i["category_additive__price"]):
additive["price"] = int(i["category_additive__price"])
checked_additives_sum += additive["price"]
Не знаю есть ли способ еще эффективнее, но время тоже не вечное поэтому такой результат устраивает на данный момент. Единственное хотелось бы все таки еще убрать цикл for additive in additives и сравнивать как-то два списка в которых словари друг с другом в одном запросе, может я слишком придирчив.
Если кто-то может написать еще более эффективный вариант, пишите )