I have a django admin action say "refresh", I want to add a refresh button for each row in the admin list view. I can create button using format_html but how can I invoke "refresh" action when it is pressed?
I don't think admin actions
are the best fit in this case.
Actions are
simple functions that get called with a list of objects selected on the change list page
With the buttons you describe however, you want to operate on a single row/instance.
Therefore I would simply create a custom url endpoint for your ModelAdmin
which is called when you press the button and which handles the desired action.
This article has quite a comprehensive overview how this can be done in detail.