Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from django.contrib.auth.models import User
- from django.db import models
- class UserTree(models.Model):
- user = models.OneToOneField(User)
- leaders = models.ManyToManyField(User, related_name='leaders',
- null=True, blank=True)
- followers = models.ManyToManyField(User, related_name='followers',
- null=True, blank=True)
- class Meta:
- verbose_name = 'User Tree'
- verbose_name_plural = 'User Tree'
- # -*- coding: utf-8 -*-
- from .models import UserTree
- from django.db.models.signals import m2m_changed
- def leaders_saved(sender, instance, action, reverse, *args, **kwargs):
- if action == 'post_add' and not reverse:
- leaders = instance.leaders.all()
- for leader in leaders:
- obj, created = UserTree.objects.get_or_create(user=leader)
- obj.followers.add(instance.user)
- obj.save_base(raw=True)
- m2m_changed.connect(leaders_saved, sender=UserTree.leaders.through)
- def followers_saved(sender, instance, action, reverse, *args, **kwargs):
- import ipdb; ipdb.set_trace()
- # if action == 'post_add' and not reverse:
- # followers = instance.followers.all()
- # for follower in followers:
- # obj, created = UserTree.objects.get_or_create(user=follower)
- # obj.leaders.add(instance.user)
- # obj.save()
- m2m_changed.connect(followers_saved, sender=UserTree.followers.through)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement