YouTubeの1つの動画URLを読み込むことができるようになりました。しかし、今問題はYouTubeのプレイリストビデオを読み込むことです。だから私の質問は、どのように私は2つの同じパターンを置き換えることができますが、両方のURLの別の置換を持っている?Django - urlfieldの一部を置換する
例:
実際のURL:ここに
<iframe width="560" height="315" src="//www.youtube.com/embed/1UiICgvrsFI?list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp" allowfullscreen></iframe>
?
と第二&
への最初の&
変化とその次の内容:
<iframe width="400" height="327" src="http://www.youtube.com/embed/1UiICgvrsFI&list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp&index=1" allowfullscreen="true"></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)
は答えをいただき、ありがとうございます。私は試しましたが、まだURLに '&'があります。あなたは私に正規表現でそれを行う方法を教えてくれませんか?また、インデックス= 1は異なる場合がありますのでご注意ください。再度、感謝します。 – Robin
URLに「&」と表示されています。「http://」: http://www.youtube.com/embed/1UiICgvrsFI'&'list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp – Robin
これはコンソールでは機能しますが、私のプロジェクトではうまくいかないようです...編集を見ていただきますか、あなたのスニペットも追加しましたか? – Robin