首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使Django模型变量相对于另一个

如何使Django模型变量相对于另一个
EN

Stack Overflow用户
提问于 2016-07-09 18:37:53
回答 1查看 183关注 0票数 0

我是一个正在尝试一个新项目的Django新手,我被困住了

我有一个视频模型:

代码语言:javascript
运行
复制
class Video(models.Model):
    link = models.CharField(max_length=200)
    title = models.CharField(max_length=200)

我想为每个视频自动生成一个指向视频缩略图的简单链接。我第一次尝试在模板中生成它,但是发现您不能在jinja中使用任何python (是的)。(我是Django的新手),然后尝试将额外的变量直接放入模型中,但是没有什么效果:

代码语言:javascript
运行
复制
class Video(models.Model):
    link = models.CharField(max_length=200)
    title = models.CharField(max_length=200)

   image_source = 'http://img.youtube.com/vi/'+ str(link.split('=')[1]) +'/maxresdefault.jpg'

我怎么能让这件事成功呢?

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-09 18:45:53

设置Django模型的属性是一种方法。如果不需要将此图像URL存储在数据库中,则可以执行以下操作:

代码语言:javascript
运行
复制
class Video(models.Model):
    link = models.CharField(max_length=200)
    title = models.CharField(max_length=200)

    @property
    def image_source(self):
        return 'http://img.youtube.com/vi/'+ str(self.link.split('=')[1]) +'/maxresdefault.jpg'

如果您真的需要将它存储在数据库中,那也没关系!您可以尝试重写该类的save()方法,如下所示:

代码语言:javascript
运行
复制
class Video(models.Model):
    link = models.CharField(max_length=200)
    title = models.CharField(max_length=200)
    image_source = models.CharField(max_length=250, blank=True)

    def save(self, *args, **kwargs):
        # ensure image_source is always updated 
        self.image_source = 'http://img.youtube.com/vi/'+ str(self.link.split('=')[1]) +'/maxresdefault.jpg'

        super(Video, self).save(*args, **kwargs)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38285072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档