代码之家  ›  专栏  ›  技术社区  ›  notalentgeek

如何从字符串参数中获取关键字参数?

  •  0
  • notalentgeek  · 技术社区  · 8 年前

    field_name

    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]
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   AChampion    8 年前

    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]