Self Join Possible?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Friend(models.Model): 
  from = ForeignKey('User', related_name='friends_of_me')
  to = ForeignKey('User', related_name='my_friends')


def first_degree(user): 
  return user.my_friends_set.all()

def second_degree(user): 
  # Totally bogus syntax below: 
  return user.my_friends_set.my_friends_set.all() 

More like this

  1. SelectRelatedManager by realmac 1 year, 8 months ago
  2. Querying on existence of a relationship by ubernostrum 5 years, 9 months ago
  3. Annotate queryset with comment count by fivethreeo 4 years, 7 months ago
  4. CategoriesField by fongandrew 3 years, 9 months ago
  5. Left Outer join Q object by karsu 5 years, 12 months ago

Comments

eallik (on November 11, 2010):

You can try smth like:

User.objects.filter(friendtofriend__to=user)

#

eallik (on November 11, 2010):
User.objects.filter(friend__to__friend__to=user)

#

(Forgotten your password?)