Django:如何在文本输入字段中显示值列表?

2024-04-25 16:35:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我定义了一个带有ManyToManyField的模型,我希望该字段显示由空格连接的值,例如:

<input type="text" name="foo" value="val1 val2 val3"/>

我定义了使用CharField表示多个值的表单:

^{pr2}$

值不显示用空格分隔的值,而是显示以下内容:

[u'val1', u'val2', u'val3']

我如何才能覆盖此行为?在


Tags: textname模型表单input定义foovalue
2条回答

您有一个基本的误解,即字段本身不负责它们的呈现方式。这就是widgets要做的。在

好吧,我终于明白了:

class MultiValueTextWidget(TextInput):
    def _get_value(self, value):
        return " ".join(value)

    def _format_value(self, value):
        if self.is_localized:
            return formats.localize_input(self._get_value(value))
        return self._get_value(value)

我之前已经试过了(在我发布原始问题之前),但我认为我的字段声明有问题。当我用这样的小部件实例化字段时,它会起作用:

^{pr2}$

出于某种原因,我在这方面遇到了麻烦:

class Meta:
    widgets = {
        'markets': MultiValueTextWidget()
        }

相关问题 更多 >