我現在可以加載youtube的單個視頻網址。但現在的問題是加載YouTube的播放列表視頻。所以我的問題是,我如何替換兩個相同的模式,但都有不同的URL替換?Django - 替換部分urlfield
如:
實際的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>
這裏先&
變化?
和第二&
及其以下內容即&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)
謝謝你的答案。我試過了,但是網址中還是有'&'。你能告訴我如何在正則表達式中做到這一點嗎?請注意索引= 1可能會有所不同。再次感謝。 – Robin
url和'http://'仍然有'&': http://www.youtube.com/embed/1UiICgvrsFI'&'list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp – Robin
它在控制檯中工作,但我可以' t似乎在我的項目中工作......請你看看編輯,我也加了你的代碼片段。 – Robin