我有一个django模型,由140列组成,包含10种日期类型,60种字符类型,70种数字类型.
class SOA_detail(models.Model): ...
有没有办法按数据类型分组并将列名放在一个list
.
char_fields = [] # storage for character fields column name num_fields = [] # storage for number fields column name date_fields = [] # storage for date fields column name
到目前为止,我知道要采用列名.
# take all field names from model for model_field in SOA_detail._meta._fields(): if #datatype is char: ---?? char_fields.append(model_field.name) elif #datatype is num: ---?? num_fields.append(model_field.name) elif #datatype is date: ---?? date_field.append(model_field.name)
感谢您抽出时间阅读我的问题.
在python中有一个名为isinstance的内置方法,它检查对象是否是特定类的实例,使用此方法可以这样做:
for model_field in SOA_detail._meta._fields(): if isinstance(model_field, CharField): char_fields.append(model_field.name) elif isinstance(model_field, IntegerField): num_fields.append(model_field.name) elif isinstance(model_filed, DateTimeField): date_field.append(model_field.name)