Django 模型管理器相关过滤器

标签 django django-models

我想过滤管理器中的相关条目:

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/

相关文章:

python - 不重定向到动态 url

python - 我可以在不启动并行进程的情况下在 Django 中运行后台进程吗?

python - 将 django 项目从 1.3.7 升级到 1.6 或 1.7 的最佳方法是什么

python - 如何每天早上 6 点和下午 6 点运行一次 Django celery 任务?

python - 在 Django 上的必需 selectDateWidget 上显示 empty_label

django - 当 commit=False 时,Django 表单 save() 方法中是否需要 save_m2m() ?

python - 如何通过选项的可读名称查询 DjangoForeignKey 模型字段?

python - Django F 似乎不起作用?

python - 在 django 中向管理员显示多个选择

database - 为计费系统设计数据库