views.py 812 B

123456789101112131415161718192021
  1. # -*- coding: utf-8 -*-
  2. from __future__ import unicode_literals
  3. from django.views.generic.base import RedirectView
  4. from django.shortcuts import get_object_or_404
  5. from django.core.urlresolvers import reverse
  6. from coin.offers.models import OfferSubscription
  7. class ConfigurationRedirectView(RedirectView):
  8. """Redirects to the appropriate view for the configuration backend of the
  9. specified subscription."""
  10. permanent = False
  11. def get_redirect_url(self, *args, **kwargs):
  12. subscription = get_object_or_404(OfferSubscription, pk=self.kwargs['id'],
  13. member=self.request.user)
  14. return reverse(subscription.configuration.url_namespace + ':' + subscription.configuration.backend_name,
  15. args=[subscription.configuration.pk])