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
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')