0

我正在尝试将单个模型和具有相同“document_title”的模型列表传递给我的 ModelDetailView 模板。views.py 部分的代码是

class DocumentDetailView(generic.DetailView):

    model = Document

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["doc_list"] = Document.objects.filter(model.document_title).order_by('revision_number')
        return context

我尝试将模型传递给 get_context_data 方法,但这只会产生其他错误。我不确定我是否以正确的方式进行此操作,但任何想法都会有很大帮助。

编辑:我已经修复了代码片段的缩进。

4

3 回答 3

1

您错误地使用了过滤器。你需要做的是:

context["doc_list"] = Document.objects.filter(document_title=self.object.document_title).order_by('revision_number')
于 2019-02-14T15:07:23.220 回答
0

详细视图的对象可作为self.object.

context["doc_list"] = Document.objects.filter(document_title=self.object.document_title).order_by('revision_number')
于 2019-02-14T15:06:10.417 回答
0

正如其他人所说,您在第 5 行的过滤器不正确。此外,根据您的 Django 版本,DetailView.get_context_data将有问题的详细信息项传递为object,您应该在过滤器中使用它。

最后,您的缩进似乎已关闭,但这可能只是复制/粘贴错误。

class DocumentDetailView(generic.DetailView):

  model = Document

  def get_context_data(self, object, **kwargs):
    context = super().get_context_data(object, **kwargs)
    context["doc_list"] = Document.objects.filter(document_title=object.document_title).order_by('revision_number')
    return context
于 2019-02-14T15:22:53.780 回答