3

I'd like to filter the related entries in the manager:

class UserTravelsCarsManager(models.Manager): def for_user(self, user): return super(UserTravelsCarsManager, self).get_query_set().filter(user=user) class TravelsCars(models.Model): user = models.ForeignKey(User) name = models.CharField(max_length=255) ... objects = UserTravelsCarsManager() class UserTravelsManager(models.Manager): def for_user(self, user): return super(UserTravelsManager, self).get_query_set().filter(user=user) class Travels(models.Model, ClonableMixin): user = models.ForeignKey(User) vehicle = models.ForeignKey(TravelsCars) ... objects = UserTravelsManager() 

It won't work by itself. I get all of the cars for all users. I've tried:

return super(UserTravelsManager, self).get_query_set().filter(user=user, vehicle__user=user) 

Which also doesn't work.

UPDATE: Just to be clear the entries for Travels are filtered. Just the related TravelsCars aren't filtered if I query them through Travels.

What am I doing wrong?

1 Answer 1

2

Instead of super(UserTravelsCarsManager, self).get_query_set().filter... try to use self.filter(user=user). Same in UserTravelsManager

Sign up to request clarification or add additional context in comments.

2 Comments

What is the same result as before? What happens? What do you see? What error do you get?
I mean I get the same entries as before..that means unfiltered...entries for all users instead of entries just for the current (logged in) user...

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.