是否可以在其 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))