我想检查是否继承了模型字段,类似于Field.is_relation
。有办法告诉吗?
我有一个继承自MPTTModel
的模型,我想要一个直接在模型中定义但不在MPTTModel
中定义的属性列表。
E.g:
# models.py
class ACoolModel(MPTTModel):
name = CharField(max_length=128)
然后,像:
[f.attname for f in ACoolModel._meta.get_fields(False)]
还提供MPTTModel
的字段:
['id', 'name', 'lft', 'rght', 'tree_id', 'level']
但我希望它能够回归:
['id', 'name']
答案 0 :(得分:0)
使用评论中建议的解决方案解决:
all_fields = [f.attname for f in ACoolModel._meta.get_fields(False)]
inherited_fields = [f.attname for f in MPTTModel._meta.get_fields(False)]
non_inherited_fields = [field for field in all_fields if field not in inherited_fields]