如何更改 SelectField 上的查询集?

How can i change queryset on SelectField?

我有一个表单和一个 select 输入,我需要更改那个 select 的查询集,我该怎么做?

我的表格示例:

class myModelForm(forms.ModelForm):
class Meta:
    model = myModel
    fields = '__all__'

如果你想制作一个表单来只捕获模型的某些字段,你必须指定这样的字段:

class Meta:
    model = myModel
    fields = ['field1','field3','field12']

如果您的意思是您希望在将其显示在您的视图中之后对其进行更改:

form = myModelForm(request.POST)
form.cleaned_data['field1'] = 'change what you want'

尝试覆盖 __init__ 并在您的字段上设置查询集:

class myModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['<your_field_name'].queryset = <your_queryset>