有没有一种方法可以将多个模型添加到基于类的视图中?

时间:2020-01-11 20:00:50

标签: django django-models django-views

是否可以将多个模型添加到基于类的视图中?!

这是我的详细视图。

class ArticleDetailView(DetailView):
    model = Article

我想在视图中添加另一个模型。

我知道我可以使用基于函数的视图,以便在视图中具有多个模型。

但是我不知道我可以通过基于类的视图来做到这一点吗?

1 个答案:

答案 0 :(得分:0)

是的,但是您必须自己处理多余的模型。如果要在一个视图中显示两个单独模型的详细信息,则需要覆盖get_context_data。当然,您将需要编写自定义方法来获取对象。

如果不确定哪个模型是主要模型(意味着大多数视图围绕它旋转,而其他模型只是补充视图),例如:用户个人资料需要用户模型,并且可能需要其他模型,例如帖子或喜欢的帖子等,在这种情况下,主要模型是用户模型),则应该真正使用TemplateView自己处理所有这些,而不是DetailView或ListView。

Check out this site,其中包含大量信息,可了解类方法具有哪些方法以及如何覆盖它们。