Python 2.7 将表格从一个请求传递到另一个请求

Python 2.7 将表格从一个请求传递到另一个请求,python-2.7,django-forms,django-views,django-1.9,Python 2.7,Django Forms,Django Views,Django 1.9,我想实现这个场景:我想要一个简单的表单,包含一些文本字段和多个提交按钮。单击按钮时,应执行此按钮的操作,并更新相应的表单字段。比如说,我们有一个加密演示。当我按下encrypt时,明文被读写并加密到密文字段中,依此类推 我有一个非常简单的表格: from django import forms class ABEForm(forms.Form): master_private_key = forms.CharField(required=False,label="Master Secr

我想实现这个场景:我想要一个简单的表单,包含一些文本字段和多个提交按钮。单击按钮时,应执行此按钮的操作,并更新相应的表单字段。比如说,我们有一个加密演示。当我按下encrypt时,明文被读写并加密到密文字段中,依此类推

我有一个非常简单的表格:

from django import forms

class ABEForm(forms.Form):
    master_private_key = forms.CharField(required=False,label="Master Secret Key",widget=forms.Textarea(attrs={'width':"100%", 'cols' : "80", 'rows': "20", }))
    master_public_key = forms.CharField(required=False,label="Master Public Key",widget=forms.Textarea(attrs={'width':"100%", 'cols' : "80", 'rows': "20", }))
这也是一个非常简单的观点:

def form_submit(request):
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        #check what submit button was pressed
        if 'abe_setup' in request.POST:
            form = ABEForm(request.POST)
            abesetupdata = ABE_Scheme_SetupData()
            abesetupdata.init_setup()
            form.master_private_key = abesetupdata.master_key
            form.master_public_key = abesetupdata.master_public_key
            print("privkey =>", form.master_private_key)
            print("pubkey =>", form.master_public_key)
            return render(request, 'webfrontend/abeform.html', {'form': form})
        elif 'abe_keyen' in request.POST:
            return render(request, 'webfrontend/abeform.html', {'form': form})


    # if a GET (or any other method) we'll create a blank form
    else:
        form = ABEForm()
        return render(request, 'webfrontend/abeform.html', {'form': form})
案件处理(按下哪个按钮)似乎很好。但是,每当我按下设置按钮,表单就会变为空,并且表单会被重新渲染。我错过了什么?我知道您可以提供一个字典来将数据绑定到表单。但是使用
request.POST
作为数据源应该可以,对吗?
print语句确实有效,并将表单内容打印到命令行…

我认为,当未绑定且无法分配字段数据时,表单是不可变的。我必须创建新表单,在其中传递一个字典,如下所示:

        data = {'master_private_key': abesetupdata.master_private_key,
            'master_public_key': abesetupdata.master_public_key,
            'attribute_key' : abesetupdata.attribute_key,
        }
        form = ABEForm(data)