【问题标题】:django pass field-name as variable in get_or_createdjango 在 get_or_create 中将字段名作为变量传递
【发布时间】:2017-04-03 07:27:57
【问题描述】:

我正在尝试查看是否可以在 get_or_create 中将字段名称作为变量传递(因为我有一个函数,其中 kwargs 中的键可以变化)

像这样:

def convert_value(cell_value, field_to_lookup):
        rem_obj, created = Rem.objects.get_or_create(field_to_lookup=cell_value)
        print ('created? ',created)
        return rem_obj

上述方法不起作用,因为它会查找“field_to_lookup”作为键。

This 帖子建议使用 getattr,但不确定这是否适用于这种情况,因为我将再次需要将输出分配给变量

【问题讨论】:

    标签: python django


    【解决方案1】:

    This 发布帮助。现在将字段值对作为 dict 传递,它允许传递字段名称的变量。代码如下:

    def convert_value(cell_value, field_to_lookup):
            rem_obj, created = Rem.objects.get_or_create(**{field_to_lookup:cell_value})
            print ('created? ',created)
            return rem_obj
    

    或者,我可以直接将 dict 传递给函数。

    【讨论】:

    • 不,这是明显的规范解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2018-05-25
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 2014-06-16
    相关资源
    最近更新 更多