multi level referal system with django and mptt -


i'm trying create referal structure this:

enter image description here

i'm trying use https://github.com/django-mptt/django-mptt/

which best approach structure database?

in future able query this:

usera.filter_referal(level=1) [<user b>, <user c>, <user d>]  usera.filter_referal(level=2) [<user z>, <user f>, <user e>, <user h>]  usera.filter_referal(level=3) [<user g>, <user i>] 

futhermore, best way structure database , associate each user reflect structure want?

class user(mpttmodel, abstractbaseuser, permissionsmixin):     …     …     …      parent = treeforeignkey('self', null=true, blank=true, related_name='children', db_index=true) 

let's usera invite user b...

what should do?

userb.parent = usera ? 

and if userb invite userz?

userz.parent = userb 

and on.. ?

let me know if best way , if have ideas/improvements.

many thanks.

edit test bad results:

>>> user.objects.all() [<user: a>, <user: b>, <user: c>, <user: d>, <user: f>, <user: g>] >>> users = _ >>> users[1].parent = users[0] # user >>> users[1].save() # user b >>>  >>> users[2].parent = users[0] # user >>> users[2].save() # user c >>>  >>> users[3].parent = users[2] # user c >>> users[3].save() # user d >>>  >>> users[4].parent = users[2] # user c >>> users[4].save() # user f  >>>  >>> users[5].parent = users[4] # user f >>> users[5].save() # user g >>>  >>> users[0].get_descendants().filter(level=1) [<user: b>, <user: c>] >>> users[0].get_descendants().filter(level=2) [<user: d>, <user: f>] >>> users[0].get_descendants().filter(level=3) [<user: g>]  # why? >>> users[4].get_descendants().filter(level=1) []  # ?  >>> users[4].get_descendants() [<user: g>]   #  >>> users[2].get_descendants().filter(level=1) [] >>> users[2].get_descendants().filter(level=0) [] >>> users[2].get_descendants().filter(level=2) [<user: d>, <user: f>]  # expect: >>> users[2].get_descendants().filter(level=1) [<user: d>, <user: f>] 


Comments