How do I add a placeholder on a CharField in Django?
Look at the widgets documentation. Basically it would look like: q = forms.CharField(label=”search”, widget=forms.TextInput(attrs={‘placeholder’: ‘Search’})) More writing, yes, but the separation allows for better abstraction of more complicated cases. You can also declare a widgets attribute containing a <field name> => <widget instance> mapping directly on the Meta of your ModelForm sub-class.