2013-12-19 165 views
0

我在week_songs上周发布了Song对象列表。它可以有一些重复的歌曲,但每首歌曲都有一个song_id与之相关联。将Django对象属性与对象列表进行比较

我试图获得上周发布的独特歌曲列表。

这是我在做什么

week_song_list = [] 
for song in week_songs: 
    if song.song_id not in week_song_list: 
     week_song_list.append(song) 

但是,这似乎是将所有的歌曲,甚至使用相同的song_id。我知道这必须有一个基本的解决方案。我究竟做错了什么?

+0

正如一个侧面说明:你的测试是错误的 - 你想要'如果歌曲不在week_songs'中。 “song.song_id”永远不会与“歌曲”实例相等。 –

+0

是的,我明白了。我应该比较一下歌曲ID而不是歌曲对象。 –

回答

0

正如有人指出的(他删除了答案),我没有保留所看到的id的记录。

这就是我一直在寻找的东西。

week_song_list = [] 
seen_ids = [] 
for song in week_songs: 
    if song.song_id not in seen_ids: 
     week_song_list.append(song) 
     seen_ids.append(song.song_id) 
相关问题