Mercurial > public > sg101
diff forums/views/attachments.py @ 581:ee87ea74d46b
For Django 1.4, rearranged project structure for new manage.py.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sat, 05 May 2012 17:10:48 -0500 |
parents | gpp/forums/views/attachments.py@72fd300685d5 |
children | 89b240fe9297 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/forums/views/attachments.py Sat May 05 17:10:48 2012 -0500 @@ -0,0 +1,35 @@ +""" +This module contains views for working with post attachments. +""" +from django.http import HttpResponse +from django.http import HttpResponseForbidden +from django.http import HttpResponseBadRequest +from django.http import HttpResponseNotFound +import django.utils.simplejson as json + +from forums.models import Post + + +def fetch_attachments(request): + """ + This view is the target of an AJAX GET request to retrieve the + attachment embed data for a given forum post. + + """ + if not request.user.is_authenticated(): + return HttpResponseForbidden('Please login or register.') + + post_id = request.GET.get('pid') + if post_id is None: + return HttpResponseBadRequest('Missing post ID.') + + try: + post = Post.objects.get(pk=post_id) + except Post.DoesNotExist: + return HttpResponseNotFound("That post doesn't exist.") + + embeds = post.attachments.all().select_related('embed') + data = [{'id': embed.id, 'html': embed.html} for embed in embeds] + + return HttpResponse(json.dumps(data), content_type='application/json') +