【发布时间】:2013-12-29 11:47:27
【问题描述】:
我现在可以加载 youtube 的单个视频 URL。但现在的问题是加载 youtube 的播放列表视频。所以我的问题是,我如何替换两个相同的模式,但都有不同的 url 替换?
例如:
实际网址:
<iframe width="400" height="327" src="http://www.youtube.com/embed/1UiICgvrsFI&list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp&index=1" allowfullscreen="true"></iframe>
把图案替换成这样:
<iframe width="560" height="315" src="//www.youtube.com/embed/1UiICgvrsFI?list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp" allowfullscreen></iframe>
这里第一个&amp; 更改为?,第二个&amp; 及其后续内容即&amp;index=1 被删除。
这是models.py:
class Video(models.Model):
title = models.CharField(max_length=100)
video_url = models.URLField(max_length=100)
def save(self, *args, **kwargs):
new_url = (self.video_url.replace("watch?v=","v/"))
super(Video, self).save(*args, **kwargs)
if new_url:
self.video_url = new_url
编辑:
def save(self, *args, **kwargs):
new_url = re.sub('watch\?v=','embed/',self.video_url)
new_url = re.sub(r'^(http:\/\/)([\w\W]+)\&list=([\w\W]+)(\&index=[\d]+)$', r'//\2?list=\3', new_url)
if new_url:
self.video_url = new_url
super(Video, self).save(*args, **kwargs)
【问题讨论】: