Теперь я могу загружать отдельные видео URL-адреса youtube. Но теперь проблема заключается в загрузке видеороликов из списка воспроизведения youtube. Поэтому мой вопрос заключается в том, как заменить два одинаковых шаблона, но оба имеют разные замены URL-адреса?Django - заменить части urlfield
Например:
Фактический адрес:
<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
Edit:
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 еще есть '&'. Не могли бы вы показать мне, как это сделать в регулярном выражении? И обратите внимание, что index = 1 может отличаться. Еще раз спасибо. – Robin
В URL еще есть '&' и: http: // ': http://www.youtube.com/embed/1UiICgvrsFI'&'list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp – Robin
Он работает в консоли, но я могу" t, похоже, работает в моем проекте ... Не могли бы вы взглянуть на редактирование, я также добавил ваш фрагмент. – Robin