在Django中检查M2M交叉点的有效方法?

时间:2012-03-21 15:18:22

标签: python django

我有两个相同类(Model)类型的对象。我想检查M2M字段上的交叉点。有没有一种有效的方法可以在不使用原始SQL的情况下执行此操作?

基本上,我现在的解决方案。

genres_a = [g for g in profile_a.genres.all()] # Convert to List
genres_b = set([g for g in profile_b.genres.all()]) # Convert to Set

if genres_b.intersection(genres_a): # Look for Intersection (Not Lazy)
    print True # Do something...

1 个答案:

答案 0 :(得分:1)

如果我理解了交叉路口:

profile_a.genres.all().filter(id__in=profile_b.genres.all())
相关问题