2012-02-13 193 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