Так я предпочитаю подключать шаблоны Django и JS.
Вам необходимо импортировать функцию рендеринга:
файл views.py
from django.shortcuts import render
from random import randint
from dash_interface.models import Video
def random_video(request):
random_number = randint(1, 9)
all_videos = Video.objects.all()
for video in all_videos:
if video.id == random_number:
random_url = video.video_url
context = {
"random_url": random_url
}
return render(request, "app/video.html", context)
else:
return render(request, "app/video.html", {})
video.html
<video id="videoplayer" controls></video>
<script>
{% load generate_random_number %}
// setup the video element and attach it to the Dash player
function setupVideo() {
// using the context passed in here.
var url = {{ random_url|safe }};
var context = new Dash.di.DashContext();
var player = new MediaPlayer(context);
player.startup();
player.attachView(document.querySelector("#videoplayer"));
player.attachSource(url);
}
</script>
<style>
video {
width: 60%;
height: 40%;
}
</style>
То, что я сделал, визуализировал вашу HTML-страницу в представлении Djangoи передал вашу переменную в контекстный словарь, который позже доступен в ваших тегах HTML или тегах скрипта.
Я также использовал параметр | safe в теге шаблона, которыйудаляет некоторые ненужные строки.
Приветствия и надеюсь, что это поможет!Я пробовал это во многих своих проектах, и это всегда было для меня успехом.