クリーンなメソッドで ModelMultipleChoiceField の各オプションの表示値を取得することは可能ですか?
次のクリーンなフィールド tagsUser が与えられた場合:
def clean_tagsUser(self):
tu = self.cleaned_data['tagsUser']
data = self['tagsUser']
print 'data:', data
return tu
次の出力が得られます。
data: <select multiple="multiple" name="tagsUser">
<option value="9" selected="selected">test 1</option>
<option value="20">test 2</option>
<option value="105">test 3</option>
<option value="373" selected="selected">test 4</option>
data = self['tagsUser'].values() を変更すると、選択した各オプションのすべての値が返されます。
data: [u'9', u'373']
データの出力が次のようになるように、各オプションの表示値を取得する必要があります。
data: [u'test 1', u'test 2', u'test 3', u'test 4']
私はこれを見つけましたhttps://code.djangoproject.com/ticket/10427これは、 data = self['tagsUser'].display_value が私が望むことをすることを示唆しているようです。ただし、display_value はまだ実装されていないようです。
一時的な解決策:
data = self['tagsUser']
data_list = re.findall(r'<.*?>(.+?)<.*?>', str(data))