【发布时间】:2018-03-26 19:57:23
【问题描述】:
我想做什么?
我有一个应用程序有三个模型:Series、Section 和Episode,每个都有一个一对多查询(通过 ForeignKey)。就这样
series-> many Section,section-> 许多情节
现在我将在系列页面中显示一个包含剧集信息的部分,但它会产生更多查询。
现在代码
views.py
series = Series.objects.get(id=series_id)
section = Section.objects.filter(series=series)
list.html
{% for item in sections %}
...
{% for episode in item.episode_set.all %}
...
{% endfor %}
...
{%endfor%}
models.py
class Section(models.Model):
series = models.ForeignKey(Series)
....
class Episode(models.Model):
section = models.ForeignKey(Section)
我想得到什么?
一个示例代码告诉我如何在 views.py 中进行查询,并且只使用很少的查询。
你可以猜到,在我的代码中,如果这里有很多节和很多集,就会有很多查询。
一些想法。
我之前使用 Laravel,在 Laravel 中,它有一个 hasMany 函数,我可以用它来获取其他模型项(由 belongsTo 定义)。 Django 有同样的功能吗?
【问题讨论】:
-
您当前的views.py 运行了吗?您是否有模板,如果有,您使用什么调用将数据发送到该模板?
-
@ben 我使用渲染将数据发送到模板,但我认为这不是关键问题。关键问题是在关系模型中获取数据。
标签: python mysql django django-models django-templates