views.py 842 B

1234567891011121314151617181920212223242526272829303132
  1. from django.shortcuts import render
  2. from django.views.generic import ListView, DetailView, RedirectView
  3. from django.views.generic.detail import SingleObjectMixin
  4. from django.contrib.auth.mixins import PermissionRequiredMixin
  5. from .models import Payment
  6. class PaymentMixin(PermissionRequiredMixin):
  7. model = Payment
  8. permission_required = 'banking.change_payment'
  9. class PaymentList(PaymentMixin, ListView):
  10. paginate_by = 50
  11. class PaymentDetail(PaymentMixin, DetailView):
  12. pass
  13. class PaymentStop(PaymentMixin, SingleObjectMixin, RedirectView):
  14. #http_method_names = ['post']
  15. def get_object(self, queryset=None):
  16. obj = super().get_object(queryset)
  17. obj.stop()
  18. obj.save()
  19. return obj
  20. def get_redirect_url(self, *args, **kwargs):
  21. return self.get_object().get_absolute_url()