def is_valid_field(self, model, field):
# Split with maximum splits of 1, so if passed xx__yy__zz, we get [xx, yy__zz]
components = field.split(LOOKUP_SEP, 1)
try:
field = model._meta.get_field(components[0])
# Reverse lookup
if isinstance(field, ForeignObjectRel):
return self.is_valid_field(field.model, components[1])
if field.get_internal_type() in self.related_field_types and len(components) > 1:
return self.is_valid_field(field.related_model, components[1])
return True
except FieldDoesNotExist:
return False
评论列表
文章目录