如何从某种类型的特定模型中获取所有字段?
例如我想从我的模型中获取所有 PositiveIntegerField 字段。
怎么做?
我之所以问这个问题是因为我有以下代码:
from django import forms
from hzmo_web.apps.hzmo.models import Report
class ReportForm(forms.ModelForm):
class Meta:
model = Report
def __init__(self, *args, **kw):
super(ReportForm, self).__init__(*args, **kw)
self.fields['osiguranika'].widget.attrs['class'] = 'biggerWidth'
self.fields['korisnika'].widget.attrs['class'] = 'biggerWidth'
self.fields['sredstva'].widget.attrs['class'] = 'biggerWidth'
self.fields['dzd_korisnika'].widget.attrs['class'] = 'biggerWidth'
self.fields['dzd_djece'].widget.attrs['class'] = 'biggerWidth'
self.fields['dzd_isplata'].widget.attrs['class'] = 'biggerWidth'
所有这些字段都是 PositiveIntegerField 类型,所以我想编写一些循环来使代码更短。
最佳答案
如果表单中的字段在模型中不存在,则需要在 try/except block 中执行此操作。
def __init__(self, *args, **kw):
super(ReportForm, self).__init__(*args, **kw)
for field in self.fields.keys():
if self._meta.model._meta.get_field(field).get_internal_type()=='PositiveIntegerField':
self.fields[field].widget.attrs['class']='biggerWidth'
关于python - 从模型中获取 django 中特定类型的所有字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15787592/