使用 Django-tables2 时,有没有办法从 HTML 动态生成 table 和客户端获取所有数据?
When using Django-tables2, Is there a way to get all the data from the HTML generated table dynamically and client side?
table class:
class TablaLechos(tables.Table):
lecho_no = tables.Column(empty_values=())
distancia = InputColumn(empty_values=())
varilla_no = InputColumn(empty_values=())
area_varilla = tables.Column(default="-")
varillas_en_lecho = InputColumn(empty_values=())
将 table 对象发送到 html 文件的视图:
def index(request):
"""The home page of diseno_columnas"""
tabla = TablaLechos([{} for n in range(10)]) # Empty dict for 10 rows.
context = {'tabla': tabla}
return render(request=request, template_name='diseno_columnas/index.html', context=context)
在 html 文件中:
{% render_table tabla %}
<button type="button" name="button" class="btn btn-primary" onClick="methodThatNeedsTheData()">Graph!</button>
该应用旨在根据 table 的数据输入在 html canvas 元素上绘制图表。每次按下按钮时,该按钮将使用 JS 和实际 table 值重绘。
目前,没有标准的方法可以做到这一点。一个可能的解决方案可能是将您传递给 table 的数据转换为 JSON,将其添加到上下文中,并通过在您的模板中输出它使其可用于您的 javascript 函数。
另一种选择是使用 javascript 从您刚刚渲染的 table 中获取值。由于您似乎有输入字段,用户可以更改这些字段并且按钮有文本 'Graph' 这可能是您用例的更好解决方案:图形将反映 [=18= 中的当前数据],而不是呈现页面时 table 中存在的初始数据。
table class:
class TablaLechos(tables.Table):
lecho_no = tables.Column(empty_values=())
distancia = InputColumn(empty_values=())
varilla_no = InputColumn(empty_values=())
area_varilla = tables.Column(default="-")
varillas_en_lecho = InputColumn(empty_values=())
将 table 对象发送到 html 文件的视图:
def index(request):
"""The home page of diseno_columnas"""
tabla = TablaLechos([{} for n in range(10)]) # Empty dict for 10 rows.
context = {'tabla': tabla}
return render(request=request, template_name='diseno_columnas/index.html', context=context)
在 html 文件中:
{% render_table tabla %}
<button type="button" name="button" class="btn btn-primary" onClick="methodThatNeedsTheData()">Graph!</button>
该应用旨在根据 table 的数据输入在 html canvas 元素上绘制图表。每次按下按钮时,该按钮将使用 JS 和实际 table 值重绘。
目前,没有标准的方法可以做到这一点。一个可能的解决方案可能是将您传递给 table 的数据转换为 JSON,将其添加到上下文中,并通过在您的模板中输出它使其可用于您的 javascript 函数。
另一种选择是使用 javascript 从您刚刚渲染的 table 中获取值。由于您似乎有输入字段,用户可以更改这些字段并且按钮有文本 'Graph' 这可能是您用例的更好解决方案:图形将反映 [=18= 中的当前数据],而不是呈现页面时 table 中存在的初始数据。