如何从字符串参数中获取关键字参数?
问题描述:
我想从字符串输入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]
答
你可以构建一个dict
和使用**
为argument unpacking,例如:
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]