Django formtools和表单实例的实例变量

Django formtools和表单实例的实例变量,django,django-formwizard,Django,Django Formwizard,我正在使用Django formtools创建多步骤表单。问题是我不知道如何将唯一ID传递给表单实例。像这样: 用户转到表单步骤1-即,从头开始启动向导。创建唯一的随机ID ID可以在所有步骤中访问,并且在完成()之前它将保持不变 如果用户返回到步骤1,ID仍将保持不变 如果用户从头开始启动表单(清除所有以前的数据),将创建一个新ID 但如何做到这一点呢?没有可利用的init。另一方面,初始值将在所有形式实例中保持不变,第4点未得到满足 有什么办法解决这个问题吗?也许可以试试这样的方法: cla

我正在使用Django formtools创建多步骤表单。问题是我不知道如何将唯一ID传递给表单实例。像这样:

  • 用户转到表单步骤1-即,从头开始启动向导。创建唯一的随机ID
  • ID可以在所有步骤中访问,并且在完成()之前它将保持不变
  • 如果用户返回到步骤1,ID仍将保持不变
  • 如果用户从头开始启动表单(清除所有以前的数据),将创建一个新ID 但如何做到这一点呢?没有可利用的init。另一方面,初始值将在所有形式实例中保持不变,第4点未得到满足


    有什么办法解决这个问题吗?

    也许可以试试这样的方法:

    class MyWizardView(SessionWizardView):
        unique_id == ""
    
        def get(self, request, *args, **kwargs):
            """
            This method handles GET requests.
    
            If a GET request reaches this point, the wizard assumes that the user
            just starts at the first step or wants to restart the process.
            The data of the wizard will be resetted before rendering the first step
            """
            self.storage.reset()
    
            # reset the current step to the first step.
            self.storage.current_step = self.steps.first
            unique_id = # Insert ID generator here #
            return self.render(self.get_form())
    

    您是否看过
    get\u context\u data
    函数?您可以使用它来检查步骤,如果满足某些要求,您可以创建一个新ID。您可以将它与
    get\u form\u initial
    功能结合使用,在初始化向导时创建ID。是的,我已经使用了这两个功能。问题是我不知道在哪里设置新的ID?我还没有找到任何在继续执行步骤1之前被调用的函数,也没有找到可以存储实例变量的函数。get_form_initial()在每一步都被调用。