我尝试记录ModelMultipleChoiceField的值
logger.debug("names %s" % self.fields['names_list'])
但我得到了
2016-08-09 17:00:19,027 DEBUG views names <django.forms.models.ModelMultipleChoiceField object at 0xa74d0bcc>
预期结果如下:
2016-08-09 17:00:19,027 DEBUG views names [33,40,45]
更新 我不确定什么不清楚 - 我想,你想要看模型,但我认为没用 - 我不需要任何价值只是在ModelMultipleChoiceField中选择的pk实例
我需要调试,因为当我输入表单时,我设置了一些隐藏的字段:
<input id="id_names" name="names" type="hidden" value="[33]" />
我尝试使用附加字段(使用ModelMultipleChoiceField)设置它 - 在清洁过程中我非常清楚地检查和设置值。但看起来ModelMultipleChoiceField在clean中是空的,所以如果它是真的我想调试。
(我必须将字段名称重命名为names_list,因为您可能认为隐藏字段和multiplechoicefield具有相同的名称)
答案 0 :(得分:1)
您可以使用
将ModelMultipleChoiceField
转换为字符串列表
selected_names = [label for value, label in self.fields['names'].choices if value in self['names'].value()]
logger.debug("names %s" % selected_names)