用相应的ID替换列表中的Django对象

时间:2019-06-26 12:57:54

标签: python django

我有一个Django对象列表

a = [<ItemBatch: Iphone>, <ItemBatch: Iphone>, <ItemBatch: Iphone>]

我可以在ORM中用其ID替换对象吗?

我需要什么:

a = [3,5,6]

我该怎么做?

2 个答案:

答案 0 :(得分:0)

主键存储在pk属性中。因此,您可以将其与他们的pk进行映射,例如,使用列表理解:

a = [item.pk for item in a]

或者您可以结合使用attrgetteroperator中的map中的list

from operator import attrgetter

a = list(map(attrgetter('pk'), a))

答案 1 :(得分:0)

如果仅需要ID,则可以优化ORM查询集以仅请求此信息。

parallelMap()

更多信息:https://docs.djangoproject.com/en/2.1/ref/models/querysets/#values-list