Confirming - then there is a connection between this topic and Loop through queryset and store data?
Are you making an individual API call for each product? If so, and you’re talking about 1000+ rows, then nothing is going to significantly speed this up.
Or, are you retrieving all current prices for all products in one call? If so, then what you’ve got is a “matching” situation. (Match items from list of ObjectA with items in list of ObjectB)
Regarding working with CBVs, see my response at Loop through queryset and store data. There is a bit of a learning curve with them - they do require some comfort with class inheritance in Python to really understand how they work and to fully take advantage of them.
You’re going to need to start understanding CBVs before I can even begin to address this properly. Briefly, there’s a function in the class called get_context_data that is responsible for pulling all the data together to be rendered by the view. You will end up overriding that method and doing additional work on that context. (And if that sentence doesn’t make any sense yet, that’s ok - it will.)