def get(self, request, *args, **kwargs):
        page = request.GET.get('page')
        per_page = request.GET.get('per-page')

        photoset_id = request.GET.get('photoset')
        photoset_list = [(photoset['id'], photoset['title'])
                         for photoset in get_photosets()]

        response_data = {
            "photosets": photoset_list,
            'numOfPages': 1,
            'photos': []
        }

        if photoset_id:
            iterator = FlickrPhotoIterator(photoset_id,
                                           page=page,
                                           per_page=per_page)

            if iterator.errors:
                response_data.update({"errors": iterator.errors})
                return JsonResponse(response_data)

            response_data['photos'] = [
                photo for photo in iterator.paginator.page
            ]
            response_data['numOfPages'] = iterator.paginator.num_pages
            response_data['totalOfPhotos'] = iterator.paginator.total

        return JsonResponse(response_data)
    def __init__(self, *args, **kwargs):
        super(FlickrCreateAlbumForm, self).__init__(*args, **kwargs)
        choices = (("", "----------"),)
        try:
            existing_album = [album.flickr_album_id for album in FlickrAlbum.objects.all()]
            photosets = [(photoset['id'], photoset['title']) for photoset in get_photosets()]
            photosets = filter(lambda x: x[0] not in existing_album, photosets)
            choices += tuple(photosets)
        except FlickrError as e:
            print(e.message)

        # set choices with flickr albums
        self.fields['flickr_album_id'].widget = forms.Select(choices=choices)
    def get(self, request, *args, **kwargs):
        page = request.GET.get('page')
        per_page = request.GET.get('per-page')

        photoset_id = request.GET.get('photoset')
        photoset_list = [(photoset['id'], photoset['title']) for photoset in get_photosets()]

        response_data = {"photosets": photoset_list, 'numOfPages': 1, 'photos': []}

        if photoset_id:
            iterator = FlickrPhotoIterator(photoset_id, page=page, per_page=per_page)

            if iterator.errors:
                response_data.update({"errors": iterator.errors})
                return JsonResponse(response_data)

            response_data['photos'] = [photo for photo in iterator.paginator.page]
            response_data['numOfPages'] = iterator.paginator.num_pages
            response_data['totalOfPhotos'] = iterator.paginator.total

        return JsonResponse(response_data)