我試圖從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