我在表单中添加占位符属性时遇到问题。我想添加一个占位符,使我的HTML看起来像:
<input type="text" name="sample" placeholder="sample">
现在这是我的代码看起来像。
这是我的模特:
from django.db import models
class Sample(models.Model):
name = models.CharField("Name", max_length=120)
这是我的表格:
from django.forms import ModelForm, TextInput
from .models import Sample
class SampleForm(ModelForm):
class Meta:
INPUT_CLASS = 'form-control'
model = Sample
widgets = {
'name': TextInput(attrs={'class':INPUT_CLASS,
'placeholder':'Enter title here'}),
}
浏览
def update(request):
sampleForm = SampleForm()
return render(request, 'sample/profile.html', 'form':sampleForm)
在我的表单中,当我包含占位符属性时,它不起作用。什么是让这项工作最好的方法?
答案 0 :(得分:1)
有点晚了,但无论如何我都会筹码。我一直在尝试做同样的事情而不必重新定义表单中使用的小部件。发现以下工作:
class ExampleForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(ExampleForm, self).__init__(*args, **kwargs)
# sets the placeholder key/value in the attrs for a widget
# when the form is instantiated (so the widget already exists)
self.fields['name_of_field'].widget.attrs['placeholder'] = 'random placeholder'
编辑:虽然我意识到这并不能回答你为什么你的代码不起作用的问题......
答案 1 :(得分:0)
在形式本身,这总是适用于我
class SampleForm(ModelForm):
class Meta:
model = Sample
name = forms.CharField(
label='Name',
widget=forms.TextInput(
attrs={'class': 'form-control', 'placeholder': 'Enter title here'}
)
)