我希望从字符串输入field_name
。这在Python中是否可能?
earliest = Model.objects.filter(
field_name__year=latest_datetime.year,
field_name__month=latest_datetime.month,
field_name__day=latest_datetime.day
).order_by(field_name)[0]
我希望这个功能会给你一点但是解释我想要的东西。
def cool_function(field_name_from_param):
earliest = Model.objects.filter(
field_name_from_param__year=latest_datetime.year,
field_name_from_param__month=latest_datetime.month,
field_name_from_param__day=latest_datetime.day
).order_by(field_name_from_param)[0]
答案 0 :(得分:0)
您可以为argument unpacking构建dict
并使用**
,例如:
def cool_function(field_name_from_param):
earliest = Model.objects.filter(
**{field_name_from_param+"__year": latest_datetime.year,
field_name_from_param+"__month": latest_datetime.month,
field_name_from_param+"__day": latest_datetime.day}
).order_by(field_name_from_param)[0]