django在get_or_create中将field-name作为变量传递

时间:2017-04-03 07:27:57

标签: python django

我试图看看是否可以将字段名称作为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,但不确定这是否适用于这种情况,因为我将再次需要将输出分配给变量

1 个答案:

答案 0 :(得分:0)

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传递给函数。