Невозможно передать модель в контекст - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь передать одну модель и список моделей с одинаковым «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, но это приводит только к другим ошибкам.Я не уверен, правильно ли я поступлю, но любые идеи очень помогли бы.

РЕДАКТИРОВАТЬ: я исправил отступ фрагмента кода.

Ответы [ 3 ]

0 голосов
/ 14 февраля 2019

Вы используете фильтр неправильно.Что вам нужно сделать, это:

context["doc_list"] = Document.objects.filter(document_title=self.object.document_title).order_by('revision_number')
0 голосов
/ 14 февраля 2019

Как уже говорили другие, ваш фильтр в строке 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
0 голосов
/ 14 февраля 2019

Объект для подробного просмотра доступен как self.object.

context["doc_list"] = Document.objects.filter(document_title=self.object.document_title).order_by('revision_number')
...