gpt4 book ai didi

python - Django forms.DateInput 不应用 attrs 字段中给定的属性

转载 作者:太空狗 更新时间:2023-10-29 20:42:28 24 4
gpt4 key购买 nike

占位符,当尝试通过 django 的 attrs 说明符应用 forms.DateInput 时未设置类

表格是一个ModelForm .

并根据docs

Takes same arguments as TextInput, with one more optional argument:

代码如下:

widgets = {
'my_date_field': forms.DateInput(format=('%d-%m-%Y'),
attrs={'class':'myDateClass',
'placeholder':'Select a date'}
)
}

同样适用于 forms.TextInput,它工作得很好。

我在这里错过了什么?

任何人都想要一个完整的类代码:

class trademark_form(ModelForm):
my_date_field = DateField(input_formats=['%d-%m-%Y'])
class Meta:
model = myModel

widgets = {
'my_date_field': forms.DateInput(format=('%d-%m-%Y'), attrs={'class':'myDateClass', 'placeholder':'Select a date'}),
'field1': forms.TextInput(attrs={'class':'textInputClass', 'placeholder':'Enter a Value..'}),
'field2': forms.TextInput(attrs={'class':'textInputClass', 'placeholder':'Enter a Value..', 'readonly':'readonly', 'value':10}),
'desc': forms.Textarea(attrs={'class':'textAreaInputClass', 'placeholder':'Enter desc', 'rows':5}),

}
exclude = ('my_valid_field')

为字段my_date_field 生成的 HTML:

<input type="text" id="id_my_date_field" name="my_date_field">

为字段 field1 生成的 HTML:

<input type="text" name="field1" class="textInputClass" placeholder="Enter a Value.." id="id_field1">

最佳答案

由于您没有发布您的表单代码,我最好的猜测是您显式实例化了一个这样的表单字段通过发布大致如下的代码证实了我的猜测:

class MyForm(forms.ModelForm):
my_date_field = forms.DateField()

class Meta:
model = MyModel
widgets = {
'my_date_field': forms.DateInput(format=('%d-%m-%Y'),
attrs={'class':'myDateClass',
'placeholder':'Select a date'})
}

我可以说它不起作用,因为如果您像这样显式实例化一个表单字段,Django 会假定您想要完全定义表单字段的行为;因此,您不能使用内部 Meta 类的 widgets 属性。

关于 overriding the default field types or widgets 的部分末尾的注释指出:

Fields defined declaratively are left as-is, therefore any customizations made to Meta attributes such as widgets, labels, help_texts, or error_messages are ignored; these only apply to fields that are generated automatically.

关于python - Django forms.DateInput 不应用 attrs 字段中给定的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15638325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com