如何获得给定主键名称变量和pk值的对象?

时间:2012-09-04 00:52:14

标签: python django django-models

如果我有一个主键名称的变量,如何获得给定该变量和主键值的对象?

例如

pk_name = 'username'
pk = 'bob'

class_name.objects.get(pk_name=pk)  # this obviously doesn't work because it looks for a field called pk_name

2 个答案:

答案 0 :(得分:5)

您可以使用primary key shortcut按主键获取对象:

class_name.objects.get(pk=pk)

通常,如果字段名称是变量,则可以使用字典来提供关键字参数。

class_name.objects.get(**{field_name: 'field_value'})

答案 1 :(得分:0)

d = {"username":"bob"}
class_name.objects.get(**d)

可能?