आपका समाधान ऐसा लगता है जैसे यह बहुत अधिक करने की कोशिश कर रहा है। इसके परिणामस्वरूप 2 अलग-अलग SQL क्वेरी भी होंगी। यह ठीक काम करेगा और केवल एक ही प्रश्न के साथ:
action_ids = Action.objects.order_by('product_id', '-created_at')\
.distinct('product_id').values_list('id', flat=True)
result = Action.objects.filter(id__in=action_ids)\
.order_by('-created_at')[:10]