我正在定义一个新的Form
,使用__init()__
修改ModelMultipleChoiceField
的查询集,并添加一个我将用于查询的变量:
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
请求创建绑定表单时,如何恢复以前用于创建未绑定表单的数据(同时查询集可能已更改) - 并且没有用户的风险弄乱了发布的数据呢?