Django将多个模型传递给模板

Posted

技术标签:

【中文标题】Django将多个模型传递给模板【英文标题】:Django passing multiple models to a template 【发布时间】:2016-11-17 22:32:51 【问题描述】:

我是第一次开发 Django 应用程序。如何将多个模型传递给模板

views.py

from django.views.generic import ListView, DetailView
from django.utils import timezone
from LastAlly.models import Article, Episode


class IndexView(ListView):
    queryset = Article.objects.all().order_by("-date")[:3]
    template_name = 'index.html'

urls.py

from django.conf.urls import url, include
from django.contrib import admin
from django.views.generic import ListView, DetailView
from LastAlly.views import IndexView

urlpatterns = [
    url(r'^$', IndexView.as_view(), ),
]

【问题讨论】:

“将多个模型传递给模板”是什么意思? 我需要使用 Episode 模型来索引模板。 【参考方案1】:

您可以编辑视图的方法,在这种情况下您可以编辑.get_context_data() 方法:

class IndexView(ListView):
    queryset = Article.objects.all().order_by("-date")[:3]
    template_name = 'index.html'

    def get_context_data(self, *args, **kwargs):
        context = super(IndexView, self).get_context_data(*args, **kwargs)
        context['episode_objects'] = Episode.objects.....
        return context

然后在您的模板中将有一个带有情节模型对象的 episode_objects 变量。

【讨论】:

这就是我想要的。谢谢! @Crownstyle 如果您觉得这很有帮助,请考虑接受此答案以帮助遇到同样问题的其他人。

以上是关于Django将多个模型传递给模板的主要内容,如果未能解决你的问题,请参考以下文章

django - 如何将多个值传递给模板标签

Django将对象列表传递给模板

Django:将会话信息传递给下一个模板和视图

django - 将参数从模板传递到 models.py 的函数

Django 模板:启用模板自动转义后,我是不是需要将 URL 传递给 URLEncode?

Django将变量传递给模板