如何在 Django 的一个模板中使用多个模型?

Xee*_*een 1 python django templates model view

我正在开发一个 wiki 页面,其布局基本上如下:

1. Page
    Page ID
    Page name
    Has many: Categories

2. Category
    Category ID
    H2 title
    Has many: category items
    Belongs to: Page

3. Category item
    Category item ID
    H3 title
    Body text
    Image
    Belongs to: Category
Run Code Online (Sandbox Code Playgroud)

我想做的是,当我单击页面或类别时,查看元素的哪些部分附加到它(例如,当我单击页面时的类别和类别项目列表),但到目前为止根据我对 Django 的了解,这要求我在一个模板上使用两个模型。

class PageView(DetailView):
    model = Page
    template_name = 'page.html'
Run Code Online (Sandbox Code Playgroud)

这就是我的“查看页面”视图部分的样子,当我尝试使用两个模型时,它崩溃了。我可以做什么来使用多个模型?

Hél*_*éna 5

我在以下链接中找到了一个示例: Django Pass Multiple Models to one Template

class IndexView(ListView):
context_object_name = 'home_list'    
template_name = 'contacts/index.html'
queryset = Individual.objects.all()

def get_context_data(self, **kwargs):
    context = super(IndexView, self).get_context_data(**kwargs)
    context['roles'] = Role.objects.all()
    context['venue_list'] = Venue.objects.all()
    context['festival_list'] = Festival.objects.all()
    # And so on for more models
    return context
Run Code Online (Sandbox Code Playgroud)