Python django将字段名作为get_或_create中的变量传递
我正在尝试查看是否可以在get_或_create中将字段名作为变量传递(因为我有一个函数,其中kwargs中的键可以变化) 像这样:Python django将字段名作为get_或_create中的变量传递,python,django,Python,Django,我正在尝试查看是否可以在get_或_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
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\u to\u lookup”作为键
post建议使用getattr,但不确定在这种情况下是否适用,因为我需要再次将输出分配给变量。现在将字段值对作为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传递给函数。不,这是显而易见的规范解决方案。