Я пытаюсь использовать URL возвращенного изображения (через AJAX call) в качестве фона для div. Этот URL-адрес ссылается на папку MEDIA Django.
Структура папки
website
media
music
image.jpg
music
templates
player.html
Каждое поле объекта работает, хотя я не могу использовать URL-адрес возвращаемого изображения.
views.py
from django.core import serializers
from django.http import JsonResponse
from django.template.loader import render_to_string
def change_song(request):
featured_song_id = request.session['featured_song']
song_list = Song.objects.all().order_by('-date') # list of objects
if request.method == "POST":
request.session['featured_song'] = request.POST['song_id']
featured_song_id = request.session['featured_song']
obj = Song.objects.get(pk=featured_song_id)
serialized_obj = serializers.serialize('json', [obj])
serialized_song_list = serializers.serialize('json', song_list)
string_render = render_to_string('music/player.html')
context = {
'html': string_render,
'obj': serialized_obj,
'song_list': serialized_song_list,
}
return JsonResponse(context, safe=False)
AJAX / jQuery / Javascript
$('a.play').click(function(e){
e.preventDefault();
var song_id = $(this).attr('id');
var this_url = $(this).attr('href');
$.ajax({
type: 'POST',
url: this_url,
data: {
'song_id': song_id,
},
dataType: 'json',
success: function(data) {
obj = JSON.parse(data.obj);
image = obj[0]['fields']['image'];
$('.player-image').css('background', 'url(/media/' + image + ') no-repeat center; background-size: 100% 100%;');
}
});
});
Я также пытался внутри url()
:
image
"image"
/media/ + image
"'/media/" + image"'"
РЕДАКТИРОВАТЬ: После комментария Ивана Старостина:
значение изображения music/images/0_default.jpg
, взято из console.log(image);
объединенного значения '/ media /' + + изображение /media/music/images/0_default.jpg
При переходе по URL отображается изображение правильно:
http://127.0.0.1:8000/media/music/images/0_default.jpg
Я пытаюсь переопределить рабочее изображение из django {{ object.image.url }}
, которое выглядит в том же формате: проверка элемента
Примечание: изображение 0_default.jpg существует и помещается в ту же папку, что и URL-адрес проверяемого элемента