Bu sitedeki ilgili soruların yanıtlarıyla bile aşağıdaki sorunun çözülmemesini sağlayamıyorum.hatası. ValueError: temel 10 ile int() için geçersiz değişmez: ''
Şu anda Django öğreticisini yapıyorum ancak formda kaldım. aşağıdaki hata, bir favori şarkı göndererek whem i almak beni dinletiyor: Ben (örn selected_song = album.song_set.get(pk= int(request.POST['song'])
) ve bir yanıtı bulmaya googledaarattın düşünebildiğim her şeyi denedim ama düzeltmek gibi olamaz
ValueError: invalid literal for int() with base 10: ''
o. Herhangi bir yardım için minnettarım. Şablonunuzda
detail.html
<form action="{% url 'music:favorite' album.id %}" method = "post">
{% csrf_token %}
{% for song in album.song_set.all %}
<input type = "radio" id = "song{{ forloop.counter }}" name = "song" value = "{{ song_id }}" />
<label for="song{{ forloop.counter }}">
{{ song.song_title }}
{% if song.is_favorite %}
<img src="http://http://i.imgur.com/b9b13Rd.png" />
{% endif %}
</label><br>
{% endfor %}
<input type="submit" value="Favorite">
</form>
views.py
def favorite(request, album_id):
album = get_object_or_404(Album, pk = album_id)
try:
selected_song = album.song_set.get(pk= int(request.POST['song']))
except (KeyError, Song.DoesNotExist):
return render(request, 'music/detail.html', {
'album':album,
'error_message': "You didn't select a valid song"
})
else:
selected_song.is_favorite = True
selected_song.save()
return render(request, 'music/detail.html', {'album': album})
Lütfen istisnasının geri dönüşünü sağlayın. Ayrıca request.POST ['song'] 'için değerin ne olduğunu kontrol etmeye çalıştınız mı? –
Görünümünüze boş bir değer gönderiliyor, bu nedenle "int" değerine yayınlanmaya çalışıyor. – cdvv7788