我试图从Django中的字符串中获取字段对象。如何从Django中的字符串路径中获取模型字段
例如,
Sale.objects.filter(product__category__name='shoes')
鉴于模型Sale
和字符串"product__category__name"
,是有可能得到Category.name
领域的对象? (或者更具体地说,该字段的verbose_name
)。
UPDATE
这就是我最终想出了
from django.db.models.fields import FieldDoesNotExist
def find_field(model, lookup):
lookups = list(reversed(lookup.split("__")))
field = None
while model and lookups:
current = lookups.pop()
field = model._meta.get_field(current)
model = field.related_model
if lookups and model is None:
raise FieldDoesNotExist(lookup)
return field
重点是从查找字符串进入类别模型。 – haki
你有哪些物品? 'Sale'类和''product__category__name“'字符串?或者是其他东西? – atn