如何向ValuesQuerySet添加字段

时间:2013-11-25 21:19:58

标签: python django

我有以下代码。

    pages = PagePromotion.objects.values('page_url').distinct().annotate(
        freq=Count('id'))

我的页面输出是..

ipdb> pages[0]
{'freq': 7, 'page_url': u'/'}

ipdb> FlatPage.objects.get(url=pages[0]['page_url']).id
1

但是当我这样做时,

pages[0]['id'] = FlatPage.objects.get(url=pages[0]['page_url']).id

它仍然给我旧的结果

  

{'freq':7,'page_url':你'/'}

当我要求页面[0]时。有没有其他方法来扩展ValuesQueryset对象

2 个答案:

答案 0 :(得分:1)

您也可以这样做:

for page in pages:
    page.update({'hede': 2})

这里的主要部分是更新,它将新属性'hede'设置为您的页面ValuesQuerySet中的对象的值。

答案 1 :(得分:0)

将ValuesQuerySet转换为列表后,我的问题解决了;

pages = list(pages)

ipdb> pages[0]['hede'] = 2
ipdb> pages[0]
{'hede': 2, 'freq': 7, 'page_url': u'/'}