在我的项目中使用Django-tables2时出现上下文错误

时间:2019-10-19 20:05:26

标签: django python-3.7 django-tables2

我正在尝试在我的项目中实现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存储库上创建了一个issue ticket

2 个答案:

答案 0 :(得分:1)

没什么可继续的,但是据我所见,看来错误可能是由于您试图从对象(例如,data.context)中检索属性context而没有引起的存在。错误的图片或堆栈痕迹可以帮助清除问题

答案 1 :(得分:0)

我的问题与tables.py有关。该文件的第一次迭代使用了以下行:

template_name = "device_app/device_list.html"

template_name与您要渲染的模板无关。它与django_tables2现有的用于表渲染的模板有关。

用以下内容替换之前显示的行:

template_name = "django_tables2/bootstrap.html"

消除了我的问题。

可以更改

template_name以反映自定义格式,但是对于这个问题,只有理解我所遇到的错误才是必需的。