我得到了某个模型MyModel._meta.get_fields()
的所有字段,然后我处理它们并想要了解哪些是我自己添加的,哪些是由django添加的。
例如,如果我有类Moovie和类Comedy有moovie = models.ForeignKey(Moovie, on_delete=models.CASCADE)
,当我将获得字段Moovie._meta.get_fields()
字段moovie也将在此列表中,如果其他模型链接到Moovie模型,moovie字段将是在列表中多次。我需要跳过它们。
答案 0 :(得分:0)
请查看Django Model,您的要求将由此确定。
答案 1 :(得分:0)
好的,对不起,这是我的回答
Loader
我可以通过此功能过滤def field_name(field, ModelClass=None):
if hasattr(field, 'field') and 'get_attname_column' in dir(field.field):
return field.field.get_attname_column()[0]
if 'get_attname_column' in dir(field):
return field.get_attname_column()[0]
field = field.field if hasattr(field, 'field') else ModelClass._meta.get_field(field.field_name)
return field.get_attname_column()[0]
def checkClassHasField(modelClass, field):
name = field_name(field)
try:
modelClass._meta.get_field(name)
return True
except Exception:
return False
列表。
但是可能存在更好的方式...