Django:将数据对象从视图传递到模板再到视图的正确方法?

Django: Correct way of passing data object from view to template to view?

用户可以从模板上传一个在

中解析的 csv 文件
def parseCSV(request):
  magic happens here (conforming date formats and all such fun things)
  return column names to template

此视图 returns 列列表,要求用户选择 x 列进行保存。 用户选择发布到

def saveCSV(request):
  logic for saving

现在我的问题是,如何最正确地处理视图 1 和视图 2 之间的 csv 数据对象?我是将它保存为临时文件还是将它作为数据对象来回发送 view1->template->view2?或者第三个?

我想在前端解析 CSV 文件并为用户提供选择列的选项。选择列后,我会将这些列的值发送到后端。

没有"correct"的办法,要看具体情况。在这种情况下,它取决于 CSV 文件中数据的大小。鉴于数据量较大,最好的办法是将解析后的数据存储在服务器上,然后在下一次请求中只发送用户选择的完整数据集。

我建议您解析数据并将其作为 JSON blob 存储在数据库中,以便您可以轻松地为下一个请求检索它。通过这种方式,您可以发送用户选择的行和列(或 "coordinates"),然后将其保存为真实数据。立即存储的好处是用户即使在离开流程后也可以 return 进入流程。但是,缺点是您会保存未使用的数据,如果用户从未完成该过程,您可能需要稍后清除它。如果将其存储在仅包含临时数据的 table 中,应该可以简化清理过程。