From 52d55a262db9dc2e629d7fd9284e7e48da52ec51 Mon Sep 17 00:00:00 2001 From: Yuval Adam Date: Thu, 30 Jan 2014 13:09:16 +0200 Subject: Add eager article fetching on 404 --- newsdiff/core/views.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/newsdiff/core/views.py b/newsdiff/core/views.py index 099631e..ad8f0cf 100644 --- a/newsdiff/core/views.py +++ b/newsdiff/core/views.py @@ -1,10 +1,12 @@ import reversion from django.contrib.contenttypes.models import ContentType +from django.http import Http404 from django.views.generic import DetailView, ListView from reversion.helpers import generate_patch_html from reversion.models import Version from .models import * +from .tasks import process_haaretz_article class ArticleView(DetailView): @@ -30,6 +32,17 @@ class HaaretzArticleView(ArticleView): model = HaaretzArticle slug_field = 'haaretz_id' + def get_object(self, queryset=None): + try: + return super(HaaretzArticleView, self).get_object(queryset=queryset) + except Http404 as e: + if not self.request.user.is_authenticated(): + raise e + else: + id = self.kwargs.get(self.slug_url_kwarg, None) + process_haaretz_article.delay('http://www.haaretz.co.il/{}'.format(id)) + raise Http404('Attempting to fetch haaretz article') + class YnetArticleView(ArticleView): model = YnetArticle -- cgit v1.3.1