def edit_song(request, id): instance = get_object_or_404(Song, pk=id) form = SongForm(request.POST or None, instance=instance) if form.is_valid(): # All validation rules pass new_song = form.save(commit=False) new_song.author = request.user try: new_song.full_clean() except ValidationError as e: print(e) # TODO: handle errors better new_song.save() return HttpResponseRedirect(reverse('song_list')) # Redirect after POST else: print(form.errors) return render(request, "songs/edit_song.html", {'user': request.user, 'form': form, 'id': id})
def create_song(request): if request.method == 'POST': # If the form has been submitted form = SongForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass new_song = form.save(commit=False) new_song.author = request.user try: new_song.full_clean() except ValidationError as e: print(e) # TODO: handle errors better new_song.save() return HttpResponseRedirect(reverse('song_list')) # Redirect after POST else: print(form.errors) else: # If the form has not been submitted form = SongForm() return render(request, "songs/create_song.html", {'user': request.user, 'form': form})