models.py
dummyColumnName = models.CharField(max_length=300, blank=True, verbose_name="MyCrazyIdea",db_column='dummy_column_name')
在数据库中,值存储为
u'[1L, 2L, 4L, 11L, 74L, 84L, 86L, 87L, 133L, 134L, 137L, 142L]
forms.py
dummyColumnName = forms.ModelMultipleChoiceField(queryset=get_queryset(),
label = "My Crazy Idea/s",
widget = FilteredSelectMultiple("My Crazy Idea/s", is_stacked=False),
required = False)
我希望FilteredSelect Box的右侧显示另一个列表中的值
现在,如果我在数据库中保存142,如'[142L]',则显示为
1
2
4
答案 0 :(得分:1)
您需要创建自己的自定义表单字段,该字段是forms.ModelMultipleChoiceField的子类,并定义to_python和prepare_value方法。类似的东西:
import ast
class StrModelMultipleChoiceField(forms.ModelMultipleChoiceField):
def to_python(self, value):
value = ast.literal_eval(value)
return super(StrModelMultipleChoiceField, self).to_python(value)
def prepare_value(self, value):
value = (super(StrModelMultipleChoiceField, self).prepare_value(value)
return unicode(value)