【发布时间】:2016-03-12 19:48:25
【问题描述】:
我正在使用 Django formtools 创建多步表单。问题是我不知道如何将唯一 ID 传递给表单实例。像这样:
- 用户进入步骤 1 - 即。从头开始启动向导。创建唯一的随机 ID。
- ID 可以在所有步骤中访问,并且在 done() 之前保持不变。
- 如果用户退回到第 1 步,ID 仍将保持不变。
- 如果用户从头开始表单(清除所有以前的数据),将创建一个新 ID。
但是如何做到这一点呢?没有 init 可供使用。另一方面,initial_dict 将在所有表单实例中保持不变,并且不满足第 4 点。
任何想法如何解决这个问题?
【问题讨论】:
-
你看过
get_context_data函数吗?您可以使用它来检查步骤,如果满足某些要求,您可以创建一个新 ID。您可以结合get_form_initial函数在向导初始化时使用它来创建一个ID。 -
是的,我都用过。问题是我不知道在哪里实际设置新 ID?在进行第 1 步之前,我没有找到任何被调用的函数,并且我可以在其中存储实例变量。 get_form_initial() 在每一步都会被调用。