2015-06-16 55 views
1

我創建在Django的應用程序,我有一個問題:如何自定義django中的下拉列表表單元素?

我在Django創建一個表單類,如我在這裏:

class A(forms.ModelForm): 

    class Meta: 
     model = ModelA 

這種方式,形式將呈現滴在modelA中包含所有元素的下拉列表,但我想要做的是過濾器;我的意思是,我希望下拉列表不要顯示所有元素。我只想顯示modelA中的元素,其值爲attribute1 = '1'attribute1modelA的屬性)。

可能嗎?

謝謝!

+0

「這樣一來,該表格將顯示在該MODELA所有元素下拉列表」 :它不會。 –

+0

@brunodesthuilliers是正確的。這種形式是創建/編輯'ModelA'的一個實例。這個模型可能是另一個模型中的ForeignKey嗎? – Brandon

+0

是的,modelA是另一個模型中的外鍵 – jartymcfly

回答

1

不知道要過濾哪一個領域,但你可以做這樣的:

class A(forms.ModelForm): 
    class Meta: 
     model = ModelA 

    def __init__(self, *args, **kwargs): 
     super(A, self).__init__(*args, **kwargs) 
     self.fields['your_field'].queryset = self.fields['your_field'].queryset \ 
       .filter(some_filter_value=1) 
+0

再次閱讀問題後,我認爲你的意思是不同的,但會等待反饋。 – Blackeagle52