Django记住绑定窗体和未绑定窗体之间的数据

2024-09-29 21:49:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在定义一个新的Form,使用__init()__修改ModelMultipleChoiceField的queryset,还添加了一个用于查询的变量:

class ProductPickerForChangeForm(forms.Form):
products = forms.ModelMultipleChoiceField(queryset=None)

def __init__(self, *args, **kwargs):
    user = kwargs.pop('user', None)
    total_amount = kwargs.pop('total_amount', None)
    super(ProductPickerForChangeForm, self).__init__(*args, **kwargs)
    if user and total_amount:
        self.fields['products'].queryset = # stuff
        self.total_amount = total_amount

现在,在views.py中,我正在为GET请求创建一个新的未绑定表单(参数来自用户):

form = ProductPickerForChangeForm(user=request.user, total_amount=amount)

但是,当我从POST请求创建绑定表单时,如何恢复以前用于创建未绑定表单的数据(查询集可能在此期间发生了更改),同时又不会有用户弄乱已发布数据的风险?你知道吗


Tags: selfformnone表单initargsformsamount

热门问题