CrabMan
CrabMan

Reputation: 1748

How to reverse access ManyToManyField of instance of a model

class User(models.Model):
    username = models.CharField(max_length=30)
    email = models.CharField(max_length=60, primary_key=True)
    registration_date = models.DateField(default=datetime.date.today)


class Task(models.Model):
    author = models.ForeignKey(
        User, on_delete=models.PROTECT,
        related_name="%(app_label)s_%(class)s_author"
    )
    likes = models.ManyToManyField(
        User,
        related_name="%(app_label)s_%(class)s_like"
    )
    dislikes = models.ManyToManyField(
        User,
        related_name="%(app_label)s_%(class)s_dislike"
    )
    subscribed_users = models.ManyToManyField(User)

I want to make a method for User, which returns all tasks liked or disliked by that user. I looked through django orm's documentation and didn't find how I can, given an instance of User, find all Tasks he liked.

Upvotes: 0

Views: 51

Answers (1)

Alex Crawley
Alex Crawley

Reputation: 166

You just need to use the related_name like:

some_user.app_label_class_like.all()

Upvotes: 1

Related Questions