我有一个名为“项目”的模型。
可以推荐项目。如果是,它们将显示在主页上(Projects.filter(is_featured=True))
每个项目包含几张幻灯片。这些幻灯片可以是特色(Slide.is_featured=True),并包含一个包含实际图像的图像模型。
在我的主页中,我想显示一个幻灯片,其中每张幻灯片都包含项目名称,以及特色幻灯片中包含的图像。
我通过在我的项目模型中添加一个名为“featured_slide()”的方法来做到这一点,但现在我意识到我每次都在访问数据库,我想通过使用“select_related”语句来改进它。
我怎样才能做到这一点?
理想情况下,我希望有一个像“featured_slide”这样的字段来表示特色幻灯片。
我正在考虑按照以下方式做一些事情:
Projects.filter(is_featured=True).annotate(featured_slide='slides__is_featured=True').select_related(slides__image)
我知道它不可能那么简单(slides__is_featured 不是数据库字段),但你明白了。