マネージャの関連エントリをフィルタリングしたいのですが、次のようになります。
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()
それだけでは機能しません。私はすべてのユーザーのためにすべての車を手に入れます。私はもう試した:
return super(UserTravelsManager, self).get_query_set().filter(user=user, vehicle__user=user)
これも機能しません。
更新:明確にするために、のエントリTravels
はフィルタリングされます。を介してクエリを実行しても、関連するTravelsCars
ものだけはフィルタリングされませんTravels
。
私は何が間違っているのですか?