示例#1
0
def addTrack(request):
    if request.method == "POST":
        trackTitle = request.POST.get('title')
        if trackTitle != "":
            try:
                track = Track(
                    title=trackTitle,
                    rating=request.POST.get('rating'),
                )
                track.save()
                genres = request.POST.getlist('genres')
                for genreId in genres:
                    genre = Genre.objects.get(pk=genreId)
                    track.genres.add(genre)
            except ():
                return render(
                    request, 'music/track.add.html',
                    {'error_message': "Something aweful happened. Try again"})
            else:
                return HttpResponseRedirect(reverse('music:showAllTracks'))
        else:
            return render(request, 'music/track.add.html',
                          {'error_message': "Can't save empty Track"})
    else:
        genreList = Genre.objects.all()
        context = dict()
        context['genreList'] = genreList
        return render(request, 'music/track.add.html', context)
    def setUp(self):
        album = Album(album_name='Anti', artist='Rihanna')
        album.save()

        self.album_id = album.id

        track1 = Track(title='Desperado', order=1, album=album, duration=4)
        track1.save()

        self.track1_id = track1.id

        track2 = Track(title='Love on the brain',
                       order=2,
                       album=album,
                       duration=3)
        track2.save()

        self.track2_id = track2.id
示例#3
0
def upload(request):
    form = TrackForm(request.POST, request.FILES)
    if form.is_valid():
        # get the mp3 data from the temp path
        try:
            mp3 = eyed3.load(request.FILES['file_path'].file.name)
        except Exception as e:
            messages.error(request, 'This is not a mp3 file')
            return redirect('home')

        try:
            # set the track data
            track = Track(artist=mp3.tag.artist,
                          title=mp3.tag.title,
                          album=mp3.tag.album,
                          year=mp3.tag.release_date.year,
                          file_path=request.FILES['file_path'])

            # get the playlist
            playlist = get_object_or_404(Playlist,
                                         pk=request.POST['playlist_id'])
        except Exception as error:

            messages.error(request, 'Error uploading mp3 file: ' + str(error))
            return redirect('home')

        # make sure it will process
        try:
            track.full_clean()
        except ValidationError as error:
            messages.error(request, 'Error validating: ' + str(error))
            return redirect('home')

        messages.success(request, 'MP3 Track uploaded')
        track.save()

        playlist.tracks.add(track)

        return redirect('home')