python - 从模型中获取 django 中特定类型的所有字段

标签 python django

如何从某种类型的特定模型中获取所有字段?

例如我想从我的模型中获取所有 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/

相关文章:

python - Django 未创建表 "Table django_session does not exist"

python - xlsxwriter 消耗太多内存并且进程被终止

c++ - Python 版本的 C++ all_of

python - 如何定义带点的二维数组并分别限制 x 和 y

python - 推特/ Facebook 评论分类为各种类别

python - 在 PostgreSQL、Python、Jinja2 上编码

python - 如何创建 Selenium Webdriver 测试以验证元素不存在?

python - 使用 pool() - Python 跟踪并行循环中的答案

python - “模块”对象没有属性 'main_page'

django - 如何在Django的model.save()中检测模型的新实例