Source code for tidings.views

from django.shortcuts import render

from tidings.models import Watch


[docs]def unsubscribe(request, watch_id): """Unsubscribe from (i.e. delete) the watch of ID ``watch_id``. Expects an ``s`` querystring parameter matching the watch's secret. GET will result in a confirmation page (or a failure page if the secret is wrong). POST will actually delete the watch (again, if the secret is correct). The templates assume use of the Jinja templating engine via jingo.Loader and the presence of a ``base.html`` template containing a ``content`` block. If you aren't using Jinja via jingo.Loader, you can replace the templates with your own django templates. """ # Grab the watch and secret; complain if either is wrong: try: watch = Watch.objects.get(pk=watch_id) # 's' is for 'secret' but saves wrapping in mails secret = request.GET.get('s') if secret != watch.secret: raise Watch.DoesNotExist except Watch.DoesNotExist: return render(request, 'tidings/unsubscribe_error.html') if request.method == 'POST': watch.delete() return render(request, 'tidings/unsubscribe_success.html') return render(request, 'tidings/unsubscribe.html')