1
在我的項目中,我需要篩選表單上的外鍵選擇選項。我能做到這將參數傳遞到窗體的__init__
方法,像這樣:根據視圖傳遞的對象ID篩選外鍵選擇選項
class ResultadoForm(forms.ModelForm):
frequencia = forms.CharField(max_length=50)
tolerancia = forms.CharField(max_length=255)
def __init__(self, equipamento_id, *args, **kwargs):
equipamento_id = kwargs.pop('equipamento_id')
super (ResultadoForm, self).__init__(*args, **kwargs)
self.fields['teste'].queryset = Teste.objects.filter(equipamento=equipamento_id)
class Meta:
model = Resultado
exclude = ['actividade']
視圖中的所有我需要做的就是:
form1 = ResultadoForm(equipamento_id)
的問題是我無法通過參數equipamento_id到inlineformset_factory:
form1 = inlineformset_factory(Actividade, Resultado, form=ResultadoForm(equipamento_id), exclude=('actividade',), extra=len(testes_list))
這會引發錯誤。如何將參數equipamento_id傳遞給inlineformset_factory以便能夠過濾foreignkey選項?
非常感謝。這就像一個魅力。我還必須從__init__方法中刪除第一個參數equipamento_id。再一次,謝謝你。 – user2466766