使用 Django 应用程序。我有一个列表,ads
我希望能够在模板中过滤这些(例如,抓取 的所有广告spot_id = 1
,然后随机选择一个。
我通过游标使用原始 SQL 而不是 Django 的神秘查询,所以我已经有了我的列表(转换为字典)。这是我到目前为止所拥有的:
# list/dict of ads
[
{'filename': u'rc_ad_06_02_11.gif', 'spot_id': 1L },
{'filename': u'k_banner.jpg', 'spot_id': 1L},
{'filename': u'dwarves-banner.gif', 'spot_id': 1L},
{'filename': u'k_skyscraper.jpg', 'spot_id': 2L }
]
# attempt to group them somehow
final_ads = []
last_spot_id = 0
for a in ads:
if a['spot_id'] != last_spot_id:
final_ads[a['spot_id']][] = a # syntax error here
last_spot_id = a['spot_id']
logger.info(final_ads)
这行不通。我基本上想要得到的是这种结构的列表:
[
1: [
{'filename': u'rc_ad_06_02_11.gif', 'spot_id': 1L },
{'filename': u'k_banner.jpg', 'spot_id': 1L},
{'filename': u'dwarves-banner.gif', 'spot_id': 1L}
],
2: [
{'filename': u'k_skyscraper.jpg', 'spot_id': 2L }
]
]
(想不出合适的方式来表示这一点,如果看起来不正确,请见谅)。
如果有人可以向我展示一种更聪明的方法,我将不胜感激。谢谢。