from django.shortcuts import render from django.views.generic import ListView, DetailView, RedirectView from django.views.generic.detail import SingleObjectMixin from django.contrib.auth.mixins import PermissionRequiredMixin from .models import Payment class PaymentMixin(PermissionRequiredMixin): model = Payment permission_required = 'banking.change_payment' class PaymentList(PaymentMixin, ListView): pass class PaymentDetail(PaymentMixin, DetailView): pass class PaymentStop(PaymentMixin, SingleObjectMixin, RedirectView): #http_method_names = ['post'] def get_object(self, queryset=None): obj = super().get_object(queryset) obj.stop() obj.save() return obj def get_redirect_url(self, *args, **kwargs): return self.get_object().get_absolute_url()