Как установить placeholder для целочисленного поля django
У меня есть типовая форма:
class CaseForm(ModelForm):
class Meta:
model = Case
fields = ["sex", "age"]
С соответствующей моделью:
class Case(TimeStampedModel):
id = models.UUIDField(
primary_key=True, unique=True, default=uuid.uuid4, editable=False
)
user = models.ForeignKey(
get_user_model(), blank=False, null=True, on_delete=models.SET_NULL)
age = models.IntegerField("Age")
SEX_CHOICES = [
("male", "Male"),
("female", "Female"),
('', "Sex")
]
sex = models.CharField("Sex", max_length=20, choices=SEX_CHOICES, blank=False)
Это отображает заполнитель 'Sex' для одного поля, и я хочу отобразить аналогичный заполнитель для 'Age'.
Один из методов, который я видел, следующий:
class CaseForm(ModelForm):
age = IntegerField(label='Age', widget=TextInput(attrs={'placeholder': 'Age'}))
class Meta:
model = Case
fields = ["sex", "age"]
Однако, когда это отображается, хотя 'Age' присутствует в качестве заполнителя, поле больше не ведет себя как целочисленное поле.
Любой совет по правильному методу приветствуется
Виджет по умолчанию для IntegerField()
- NumberInput
, поэтому:
class CaseForm(ModelForm):
age = IntegerField(label='Age', widget=NumberInput(attrs={'placeholder': 'Age'}))
class Meta:
model = Case
fields = ["sex", "age"]