是否可以从用于创建表单类的查询集中访问值。例如,我有以下观点:
class MyView(View):
position = Position()
form_class = PortfolioForm
PositionModelFormSet = modelformset_factory(Position,
fields=('symbol', 'direction', 'size'),
form=form_class)
def get(self, request):
positions = self.position.get_user_positions_qs(user=request.user)
portfolio = self.PositionModelFormSet(queryset=positions)
我需要的是能够在创建表单时访问传递给PortfolioForm的值。换句话说,对于formset中的每个表单,都有一个在实例化时使用的查询集。我需要在设置表单时访问该查询集中的值。例如,PortfolioForm类似于:
class PortfolioForm(forms.ModelForm):
value = get_value_from_queryset # eg: access symbol field
do_something_with_value(value)
class Meta:
model = Position
fields = ['symbol', 'direction', 'size']
我正在考虑通过覆盖表单__init__
方法并使用self.instance
或kwargs
以某种方式访问它,但到目前为止我还没有运气。
答案 0 :(得分:1)
使用ModelForm,form.instance已经可以使用了。
形式为:self.instance
在视图中:formset.form.instance