我想过滤管理器中的相关条目:
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
,则不会过滤它们。
我做错了什么?
最佳答案
而不是 super(UserTravelsCarsManager, self).get_query_set().filter...
尝试使用self.filter(user=user)
。与 UserTravelsManager
相同
关于Django 模型管理器相关过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11391266/