如何调试ModelMultipleChoiceField

时间:2016-08-09 17:11:57

标签: python django debugging

我尝试记录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具有相同的名称)

1 个答案:

答案 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)