1

クリーンなメソッドで 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))
4

0 に答える 0