Django-替换urlfield的一部分

罗宾

现在,我可以加载youtube的单个视频URL。但是现在的问题是加载youtube的播放列表视频。所以我的问题是,如何替换两个相同的模式,但是都替换为url?

例如:

实际网址:

<iframe width="400" height="327" src="http://www.youtube.com/embed/1UiICgvrsFI&amp;list=PLvAOICvbvsbnc5dLG0YR9Mq_tFfzAhQSp&amp;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]+)\&amp;list=([\w\W]+)(\&amp;index=[\d]+)$', r'//\2?list=\3', new_url)
        if new_url:
            self.video_url = new_url
            super(Video, self).save(*args, **kwargs)
米哈伊尔·切尔尼赫(Mikhail Chernykh)

首先,似乎您的网址已编码。请检查|urlencode模板中是否没有过滤器(https://docs.djangoproject.com/en/dev/ref/templates/builtins/#urlencode)。

要将视频URL更改为播放列表URL,必须使用正则表达式。您可以创建一种将视频URL转换为播放列表URL的方法:

import re
...
def playlist_url(self):
    """
    Generates a playlist URL
    """
    new_url = re.sub(r'^(http:\/\/)([\w\W]+)&list=([\w\W]+)(\&index=[\d]+)$', r'//\2?list=\3', self.video_url)
    return new_url
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用Django中html文件的内容替换模板的一部分

Django-仅在模型中提供Foreignkey的一部分

Django Python:无法获取字符串的一部分

使用 Django 仅更新 HTML 页面的一部分

在字段的一部分上执行Django查询

根据变量获取 django 模型的一部分

Django:复制文件仅复制一部分

Django-作为包含的一部分传递flatpage.title变量

检查用户是否是多人关系django的一部分

Django序列化器输出作为JSON对象的一部分

Django通用表单集ManytoManyField不是清理数据的一部分

如何从“列表”视图中分割字段的一部分– Django Rest Framework

choice_set django教程第一部分

如何手动呈现Django表单的一部分

Django 迁移——作为迁移的一部分,我如何擦除模型?

除非级联的一部分,否则如何防止从Django Admin中删除Django模型

Django使用模板变量的值作为另一个变量名的一部分

如何在仅连接外部查询集的一部分的Django中创建ForeignKey?

如果初始makemigrations的一部分,对查询集使用选择的Django表单会导致错误

如何使用django rest框架在后端突出显示文章的一部分

使用Django自定义管理器方法作为Q对象链的一部分

如何将模型移至Django网站管理员的另一部分

将用户和组保留在Django管理面板的同一部分中

使用基于类的视图,限制属于组的用户对模板的一部分的访问。Django 2.0

作为更广泛的Django项目的一部分,运行流星应用程序

Django:通过“参数具有字段值的一部分”来过滤查询集?

我正在尝试使用 AJAX 将已经呈现的 Django 模板注入我的页面的一部分

如何在django中隐藏base.html中的一部分html代码?

如何使用多对多关系与不同 PostgreSQL 模式中的表创建 Django 模型,一个模型仅使用非托管表的一部分