【发布时间】:2020-02-06 03:10:32
【问题描述】:
我正在尝试使用 Django 更新表单提交时的 HTML 画布元素。
我有我的 views.py,它使用 JSON 中的已处理数据呈现 index.html 页面。
return render(request, 'index.html', {'form': form, 'data': mark_safe(json.dumps(data))})
这个渲染方法在 if request.method == 'POST' 中,所以本质上它正在通过上下文将数据适当地发送到 HTML 和 JavaScript,但是,当我使用“提交”按钮时,我需要画布更新。
$('#form').submit(function() { /* all of my canvas logic */ });在刷新Django页面之前,画布会暂时显示标志,然后重置为空白画布。
大概这是因为 views.py 中没有任何内容明确告诉 index.html 在页面上有一个带有数据的新画布,但我似乎找不到任何信息或文档。此外:
- Python tkinter 或其他 GUI 库在这里并不真正适用。
- 我只能通过 JavaScript 更改和更新画布。
- 我无法通过视图将整个 HTML 画布元素作为上下文传递。
-
e.preventDefault();将取消整个提交;因此,如果表单中的输入发生更改,则 POST 数据不会更新,因此画布上绘制的形状也不会更改。
也许有办法在处理完表单数据后绘制这个?
TLDR:如何根据表单数据呈现画布,然后在提交表单后让画布在页面上保持(或更新)?
【问题讨论】:
标签: javascript python html django python-3.x