gpt4 book ai didi

python - 在 Django 中重组多对多关系

转载 作者:行者123 更新时间:2023-11-28 18:55:30 24 4
gpt4 key购买 nike

我的模型中有多对多关系,我正试图在我的一个页面上重新组织它。

我的网站有视频。在每个视频的页面上,我试图列出该视频中的 Actor 以及他们每次出现在视频中的链接(链接将跳到视频的那部分)

这是一个例子


此处嵌入 Flash 视频

Actor ...

Ted smith: 1:25, 5:30
jon jones: 5:00, 2:00

这是我模型的相关部分

class Video(models.Model):
actor = models.ManyToManyField( Actor, through='Actor_Video' )
# more stuff removed

class Actor_Video(models.Model):
actor = models.ForeignKey( Actor )
video = models.ForeignKey( Video)
time = models.IntegerField()

这是我的 Actor_Video 表的样子,也许它会更容易看到我在做什么

id     actor_id    video_id    time (in seconds)
1 1 3 34
2 1 3 90

我觉得我必须重新组织我认为的信息,但我想不通。在使用 djangos orm 的模板中似乎是不可能的。我已经尝试了一些创建字典/列表的方法,但我没有运气。任何帮助表示赞赏。谢谢。

最佳答案

我认为最像 Django 的方式是使用“regroup”模板标签:

{% regroup video.actor_video_set.all by actor as video_times %}
{% for actor_times in video_times %}
<li>{{ actor_times.grouper }}: # this will output the actor's name
{% for time in actor_times %}
<li>{{ time }}</li> # this will output the time
{% endfor %}
</li>
{% endfor %}

这样您就可以避免在模板中使用比您想要的更多的逻辑。顺便说一句,您可以阅读重组标签 here

关于python - 在 Django 中重组多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2893198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com