Ошибка контекста при использовании Django-tables2 в моем проекте - PullRequest
1 голос
/ 19 октября 2019

Я пытаюсь внедрить Django-tables2 в мой проект. Я могу обработать object_list, но когда я изменяю шаблон на таблицу render_table, он не работает.

Я вижу эту ошибку при пересылке моего шаблона:

Exception Type: AttributeError Exception Value: context

Вот мои следующие файлы

Views.py

class DeviceTable_New(SingleTableView):
    table_class = DeviceTable
    template_name = "device_app/device_list.html"
    paginator_class = LazyPaginator

Tables.py

class DeviceTable(tables.Table):
    class Meta:
        model = Device
        template_name = "device_app/device_list.html"
        fields = ("id", "type", "processed","donated_to_recipient")

urls.py

path('device_list/',views.DeviceTable_New.as_view(),name='device_list'),

Шаблон (Не на всю страницу. На этой странице размещена служебная информация.)

       <div class='col-md-8'>
          <div class="jumbotron">
              <h1>Devices</h1>
              <hr>
              <p><a class='button' href="{% url 'device_app:device_create'%}">Create Device</a</p>

              {% render_table table %}
          </div>
        </div>

РЕДАКТИРОВАТЬ:Если я изменяю небольшие части кода (были предприняты многочисленные варианты), я получаю следующее: Fatal Python error: Cannot recover from stack overflow.

РЕДАКТИРОВАТЬ 2: Я создал билет на выдачу в репозитории Django-tables2,

Ответы [ 2 ]

1 голос
/ 19 октября 2019

Что ж, дальше очень мало, но, как я вижу, похоже, ошибка возникла из-за того, что вы пытались извлечь атрибут context из объекта (например, data.context), где он не существует. Изображение или трассировка в стеке ошибки могут помочь прояснить ситуацию

0 голосов
/ 20 октября 2019

Моя проблема была связана с tables.py. Первая итерация этого файла использовала эту строку:

template_name = "device_app/device_list.html"

template_name не относится к шаблону, который вы отображаете. Это связано с существующими шаблонами django_tables2 для рендеринга таблиц.

Замена ранее показанной строки следующим:

template_name = "django_tables2/bootstrap.html"

Устранена моя проблема.

template_name можно изменить, чтобы отразить пользовательское форматирование, но для этого вопроса было важно понять только ошибку, с которой я столкнулся.

...