1

是否可以在其 clean 方法中获取 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