class StatusForm(ModelForm):
bases = forms.ModelMultipleChoiceField(
queryset=Base.objects.all(), #this should get overwritten
widget=forms.SelectMultiple,
)
class Meta:
model = HiringStatus
exclude = ('company', 'date')
def __init__(self, *args, **kwargs):
super(StatusForm, self).__init__(*args, **kwargs)
if kwargs.has_key('bases_queryset'):
self.fields['bases'].queryset = kwargs['bases_queryset']
我想一個選項添加到該表單,讓我創建一個表單,像這樣:添加** kwarg一類
form = StatusForm(bases_queryset=Base.objects.filter([...])
但不知何故,我需要「補充」這個關鍵詞所以它會被認可。他們的方法是現在,我剛剛得到這個錯誤:
__init__() got an unexpected keyword argument 'bases_queryset'
更好的方法很簡單: bases_queryset = kwargs.pop(「bases_queryset」,無) 這將刪除字典中的關鍵,給你它的價值,如果它存在那裏,也初始化爲None當鑰匙不在那裏。 – 2009-06-14 10:17:52