i'm trying create referal structure this:

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
Post a Comment