У меня есть простой сайт блога в django, и я хочу включить встраивание видео с помощью этого скрипта:
<script src= "http://player.twitch.tv/js/embed/v1.js"></script>
<div id="youtubeplayer"></div>
<script type="text/javascript">
var options = {
width: 800,
height: 500,
video: "627627612"
};
var player = new Twitch.Player("youtubeplayer", options);
player.setVolume(0.5);
</script>
У меня есть поле URL-адреса в модели Post. Затем я хочу взять этот URL-адрес и использовать только его часть для заполнения параметра «видео» в приведенном выше сценарии. Так, например, у нас есть URL-адрес видео Twitch https://www.twitch.tv/videos/494181151
, и я хочу взять 494181151
и преобразовать его в строку, чтобы я мог заполнить его параметром «видео» выше в шаблоне html.
Возможно ли это, и как я go могу это сделать? Я знаю, что должен проверить URL-адрес, а затем проверить, содержит ли он часть URL-адреса, например:
{% if url %}
{% if 'twitch.tv/videos' in url %}
Но я не уверен, как получить последнюю часть URL-адреса.
Спасибо!
РЕДАКТИРОВАТЬ: Благодаря Налину я смог создать метод в модели Post для правильного извлечения идентификатора видео. Однако, когда я использую переменную в шаблоне html, все, что я вижу, - это какая-то Javascript печать на веб-странице. var options = { width: 800, height: 500, ...
Вот мой обновленный шаблон html:
{% if post.video_URL %}
<script src= "http://player.twitch.tv/js/embed/v1.js"></script>
<div id='youtubeplayer'></div>
<script type="text/javascript">
var options = {
width: 800,
height: 500,
video: "{{ post.get_video_id }}"
};
var player = new Twitch.Player("youtubeplayer", options);
player.setVolume(0.5);
</script>
{% endif %}
Вот метод модели, если необходимо, но, похоже, он работает правильно, если я просто напечатаю {{ post.get_video_id }}
. Проблема возникает только тогда, когда я пытаюсь включить его в javascript выше, чтобы встроить видео Twitch.
class Post(models.Model):
user = models.ForeignKey(User, on_delete= models.CASCADE)
title = models.CharField(max_length=100, blank=False)
content_text = models.TextField(blank=False, max_length=3000)
created_date = models.DateTimeField(auto_now_add=True)
score = models.IntegerField(blank=True, null=True)
slug = AutoSlugField(populate_from='title',
unique_with=['user__username', 'created_date'])
tags = TaggableManager()
video_URL = models.URLField(blank=True, verbose_name='Video/VOD/Clip URL')
def __str__(self):
return self.title
def get_video_id(self):
video_id = self.video_URL.split('/')[-1] # will return str
return video_id
Спасибо !!