def _decorator(request, pid, *args, **kwargs): try: pid = int(pid) except (TypeError, ValueError): raise Http404 podcast = Podcast.for_oldid(pid) if not podcast: raise Http404 return f(request, podcast, *args, **kwargs)
def blacklist(request, podcast_id): podcast_id = int(podcast_id) blacklisted_podcast = Podcast.for_oldid(podcast_id) suggestion = Suggestions.for_user(request.user) @repeat_on_conflict(['suggestion']) def _update(suggestion, podcast_id): suggestion.blacklist.append(podcast_id) suggestion.save() _update(suggestion=suggestion, podcast_id=blacklisted_podcast.get_id()) request.user.suggestions_up_to_date = False request.user.save() return HttpResponseRedirect(reverse('suggestions'))