我有以下代码。
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对象
答案 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'/'}