diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2014-01-30 13:09:16 +0200 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2014-01-30 13:09:16 +0200 |
| commit | 52d55a262db9dc2e629d7fd9284e7e48da52ec51 (patch) | |
| tree | fc39602d5a00e9a66dd0f2dbe6a5ed7d1d03f106 | |
| parent | 096c48dc08b7e12744d22ccf514bbb17302a31e2 (diff) | |
Add eager article fetching on 404
| -rw-r--r-- | newsdiff/core/views.py | 13 |
1 files changed, 13 insertions, 0 deletions
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 |
