2012-02-13 162 views
0

我有一組對象存儲在名爲subs的變量中。列subscribed_to是一個外來對象。檢查對象是否爲查詢集結果的外鍵

有沒有辦法做檢查,如果related_object在此列表中的一個簡單的方法:

def check_subscription_status(user, related_object): 
    subs = get_user_subscriptions(user) # returns filter queryset 
    subscribed = False 
    for s in subs: 
     if s.subscribed_to == related_object: #related object is the potential match 
      subscribed = True 
      break 
    return subscribed 

回答

0
return (related_object in [s.subscribed_to for s in subs]) 

ETA:一種更好的方式:

return subs.filter(subscribed_to=related_object).count() > 0 
+0

你的想法是正確的,但爲了使它與該方法兼容,返回值應該是'return subs.filter(subscribed_to = related_object).count()' – 2012-02-13 04:23:49

+0

謝謝..另一個快速的評論是s.subscribed_to對於subs中的s拋出無效的語法錯誤。 – Brenden 2012-02-13 06:21:06

+0

這很奇怪。也許你可以粘貼錯誤? – 2012-02-13 15:37:50