我正在获取我的模型字段列表,如下所示:
c = Client.objects.all().first()
fields = c._meta.get_all_field_names()
如何获取这些字段的数据类型(CharField,Int等)列表?有没有比在每个字段上查找get_internal_type
属性更简单的方法?
谢谢!
答案 0 :(得分:1)
您可以使用:
raw_list = c._meta.get_fields_with_model()
执行raw_list = c._meta.get_fields_with_model()
时,raw_list包含以下内容:
((<django.db.models.fields.AutoField: id>, None), (<django.db.models.fields.TextField: signature>, None) etc...
获得&#34;解析&#34;列表只包含我们可以执行的数据类型的名称:
[item[0].__class__.__name__ for item in raw_list._meta.get_fields_with_model()]
或使用 get_internal_type :
[item[0].get_internal_type() for item in raw_list._meta.get_fields_with_model()]
在这两种方式中,您都会得到如下列表:
['AutoField', 'TextField', 'TextField', 'FloatField', 'CharField', 'BooleanField', 'IntegerField', 'ImageField', 'BooleanField'...
只是代码:
raw_list = c._meta.get_fields_with_model()
parsed_list = [item[0].__class__.__name__ for item in raw_list._meta.get_fields_with_model()]