まだ選択されていないChoiceField のすべての項目を含むリストをフォームで使用したいと考えています。これを行うために、選択肢を反復処理し、選択されたものを破棄します (つまり、html で selected="selected" を持っています)。
class MethodForm(ModelForm):
def __init__(self, *args, **kwargs):
super(MethodForm, self).__init__(*args, **kwargs)
#pseudo-code starts here
exclude = []
for val in self.fields['someM2Mfield'].choices:
exclude.append(val.is_selected)
#/pseudocode
rule_choices = get_rule_choices(exclude)
self.fields['rule'] = forms.ChoiceField(rule_choices)
...
疑似コード ビットは、使用するメソッド/プロパティがわからない場所です。誰でも私を啓発できますか?
PS: を呼び出して選択肢を繰り返すことはできますがnext()
、self.fields[].choices.__iter__
選択肢が選択されているかどうかを判断するにはどうすればよいですか?