一尘不染

如何在Django的CharField上添加占位符?

django

以这个非常简单的形式为例:

class SearchForm(Form):
    q = forms.CharField(label='search')

这将在模板中呈现:

<input type="text" name="q" id="id_q" />

但是,我想将placeholder属性值添加到此字段,Search以便HTML看起来像这样:

<input type="text" name="q" id="id_q" placeholder="Search" />

最好我想CharField通过字典或类似的东西将占位符值传递给表单类中的:

q = forms.CharField(label='search', placeholder='Search')

做到这一点的最佳方法是什么?


阅读 522

收藏
2020-03-28

共1个答案

一尘不染

q = forms.CharField(label='search', 
                    widget=forms.TextInput(attrs={'placeholder': 'Search'}))

是的,更多的写作,但是分离可以更好地抽象更复杂的情况。

你也可以声明widgets包含一个属性<field name> => <widget instance>直接映射Meta你的ModelForm子类。

2020-03-28