设置modelform时访问queryset值

2024-10-01 00:28:50 发布

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

是否可以从用于创建窗体类的queryset中访问值。例如,我有以下观点:

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中的每个表单,都有一个queryset,在实例化它时使用它。我需要在设置窗体时访问该查询集中的值。例如,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']

我想通过重写form __init__方法并使用self.instancekwargs来访问它,但到目前为止我还没有任何运气


Tags: selfformfieldsgetvalueposition窗体symbol