我想在forms.py
中获取特定的字段类型,因此我可以将该字段添加到特定的CSS类中。
在我的models.py
我有多个CharField,DateField和其他像BigIntegerField等,我想要求它。这是我的代码:
forms.py
class MyForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
for field in self.fields:
if type(field) == CharField: #Here's the problem
self.fields[field].widget.attrs.update({
'class': 'form-control'})
class Meta:
model = MyModel
fields = '__all__'
我不能一个接一个地做,因为我的模型中有很多字段。任何想法我该怎么做?非常感谢。
答案 0 :(得分:3)
以下内容将返回Field
使用的字符串:
YourModel._meta.get_field('field_name').get_internal_type()
这将返回班级
YourModel._meta.get_field('field_name')
>>> # Output .....
在你的情况下:
if YourModel._meta.get_field(field).get_internal_type() == 'CharField':
self.fields[field].widget.attrs.update({
'class': 'form-control'})