18 lines
504 B
Python
18 lines
504 B
Python
from django.views.generic import View
|
|
from django.views.generic.detail import SingleObjectMixin
|
|
from django_htmx.http import HttpResponseClientRefresh
|
|
|
|
|
|
class HTMXActionView(SingleObjectMixin, View):
|
|
"""
|
|
Generic view that performs an action when called via HTMX and then causes
|
|
a full page refresh.
|
|
"""
|
|
|
|
def post(self, request, pk):
|
|
self.action(self.get_object())
|
|
return HttpResponseClientRefresh()
|
|
|
|
def action(self, instance):
|
|
raise NotImplementedError()
|