我可以从Django的模型查询集中获取模型字段类型吗?
举个例子:假设a
是b
模型的查询集,而b
模型有以下字段:
- f:字符型字段(CharField)
- g:外键字段(ForeignKey)
- h:多对多关系字段(ManyToMany)
是否有办法从查询集a
中获取字段g
的类型?谢谢。
我可以从Django的模型查询集中获取模型字段类型吗?
举个例子:假设a
是b
模型的查询集,而b
模型有以下字段:
是否有办法从查询集a
中获取字段g
的类型?谢谢。
我的回答如下:
a.model._meta.get_field('g').get_internal_type()
_meta
对象在Django中变得越来越标准,并且在Django内部广泛使用。我的建议是,您应该放心使用它,但是在升级Django版本时一定要运行测试(您正在编写单元测试,对吗?)。但总体而言,确实应避免在Python第三方库中使用以单个下划线开头的符号。 - wkschwartzfields = [f.attname for f in Experience._meta.fields]
file_fields = []
print("FILE FIELDS : ", fields)
for field in fields:
get_type = Experience._meta.get_field(field)
print("GET TYPE :", get_type)
field_type = get_type.__class__.__name__
print(field, "FILE TYPE : ", field_type)
if field_type == "FileField":
file_fields.append(field)
这段代码可以获取Django模型的字段类型。