示例#1
0
    def get_context_data(self, **kwargs):
        context = super(SearchView, self).get_context_data(**kwargs)
        keyword = self.kwargs['keyword']

        try:
            artists = Artist.objects.filter(name__icontains=keyword).values(
                'name', 'slug', 'text', 'picture')
        except Artist.DoesNotExist:
            artists = []

        try:
            albums = Album.objects.filter(name__icontains=keyword).values(
                'name', 'date', 'picture', 'slug')
        except Album.DoesNotExist:
            albums = []

        try:
            songs = Song.objects.filter(title__icontains=keyword).values(
                'title', 'filepath', 'slug', 'album__name', 'album__slug',
                'artist__slug', 'artist__name', 'style__name', 'style__name',
                'album__picture')
        except Song.DoesNotExist:
            songs = []

        try:
            playlists = Playlist.objects.filter(name__icontains=keyword)
        except Playlist.DoesNotExist:
            playlists = []

        remote_instances = RemoteInstance.objects.all()
        for remote_instance in remote_instances:
            api_client = ApiClient()
            search = api_client.search(keyword)
            try:
                artists = self.merge_dict(artists, search['artists'])
            except KeyError:
                pass
            try:
                songs = self.merge_dict(songs, search['songs'])
            except KeyError:
                pass
            try:
                albums = self.merge_dict(albums, search['albums'])
            except KeyError:
                pass

        context['artists'] = artists
        context['albums'] = albums
        context['songs'] = songs
        context['playlists'] = playlists
        context['modal_playlists'] = Playlist.objects.all()

        context['active'] = "search"
        return context
示例#2
0
    def get_context_data(self, **kwargs):
        context = super(SearchView, self).get_context_data(**kwargs)
        keyword = self.kwargs['keyword']

        try:
            artists = Artist.objects.filter(name__icontains=keyword).values(
                'name', 'slug', 'text', 'picture')
        except Artist.DoesNotExist:
            artists = []

        try:
            albums = Album.objects.filter(name__icontains=keyword).values(
                'name', 'date', 'picture', 'slug')
        except Album.DoesNotExist:
            albums = []

        try:
            songs = Song.objects.filter(title__icontains=keyword).values(
                'title', 'filepath', 'slug', 'album__name', 'album__slug',
                'artist__slug', 'artist__name', 'style__name', 'style__name',
                'album__picture')
        except Song.DoesNotExist:
            songs = []

        try:
            playlists = Playlist.objects.filter(name__icontains=keyword)
        except Playlist.DoesNotExist:
            playlists = []

        remote_instances = RemoteInstance.objects.all()
        for remote_instance in remote_instances:
            api_client = ApiClient()
            search = api_client.search(keyword)
            try:
                artists = self.merge_dict(artists, search['artists'])
            except KeyError:
                pass
            try:
                songs = self.merge_dict(songs, search['songs'])
            except KeyError:
                pass
            try:
                albums = self.merge_dict(albums, search['albums'])
            except KeyError:
                pass

        context['artists'] = artists
        context['albums'] = albums
        context['songs'] = songs
        context['playlists'] = playlists
        context['modal_playlists'] = Playlist.objects.all()

        context['active'] = "search"
        return context