我正在尝试在我的项目中实现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。
答案 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
以反映自定义格式,但是对于这个问题,只有理解我所遇到的错误才是必需的。