Не так давно решал похожий вопрос. Как я понял решение сводиться к наследованию от FormMixin и ListView c предопределением метода post
Вот пример моей реализации но с использованием DetailView
class PartnerOrderView(FormMixin, DetailView):
template_name = 'order-partner.html'
form_class = PartnerBarcodeOrderForm
model = Partner
def post(self, request, *args, **kwargs):
""" Обработка POST при использовани FormMixin в DetailView """
self.object = self.get_object()
form = self.get_form()
if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form):
form.save()
return super().form_valid(form)