2011-02-28 71 views
0

我有一个动态的选择栏:Django的choicefield iniital值问题

PASSENGER_TYPE_CHOICE = [(p.id, p.cabin.name) for p in flight.passengertype_set.all() if p.availableSeats > 0] 
self.fields['passenger_type'] = forms.ChoiceField(label=str(self.flight.code)+" Seat Type", initial=PASSENGER_TYPE_CHOICE[0][0],choices=PASSENGER_TYPE_CHOICE) 

请注意,我把一个初始值了。但是当我点击这个表单的提交按钮时,它会提出“这个字段是必需的”。当我点击选择字段并选择一个选项时,它可以工作。但是,我真的必须先选择,即使有初始值吗?请帮忙?

回答

3

documentation说:要指定动态初始数据,请参阅Form.initial参数。

所以这应该做的伎俩:

form = MyPassengerForm(initial = {'passenger_type': PASSENGER_TYPE_CHOICE[0][0]})