0

I am trying to create a following system, where users can see each others posts on their timeline. But i'm stuck on the follow system.

I've tried to use a ManyToManyField

class Friends(models.Model):
    users = models.ManyToManyField(User)

I expect it to let me follow other people.

WizKid
  • 4,888
  • 2
  • 23
  • 23
reydript
  • 31
  • 3
  • https://stackoverflow.com/questions/45847930/django-in-many-to-many-relationship-within-the-self-class-how-do-i-reference-e/45848068#45848068 – wencakisa Jul 08 '19 at 07:07

1 Answers1

0

models.py

class Post(models.Model):
    post_created_user = models.ForeignKey(User, on_delete=models.CASCADE)
    post_name = models.CharField(max_length=100)
     --------other------

class FollowersAndFollowing(models.Model):
    """
    List of followers and following
    """

    followed_by = models.ForeignKey(User, on_delete=models.CASCADE,  related_name='followed_by')
    followed_to = models.ForeignKey(User, on_delete=models.CASCADE,  related_name='followed_to')
    created_date = models.DateTimeField(blank=True, null=True)

    def __str__(self):
        return self.followed_by.first_name + '-' + str(self.followed_to.first_name)

views.py

## query to get all following users list

user_ids = FollowersAndFollowing.objects.filter(followed_by=request.user).values_list('id',flat=True)


## now search for all posts 

Post.objects.filter(post_created_user__in = user_ids)
DEEPAK KUMAR
  • 361
  • 3
  • 14