【问题标题】:Django Queryset Filter (Maybe Needs a Subquery)Django 查询集过滤器(可能需要子查询)
【发布时间】:2010-08-04 15:11:33
【问题描述】:

我想生成一个查询集来查找不匹配。举个例子

class Vehicle(models.Model):
    car = models.CharField(max_length=100)
    model= models.CharField(max_length=100)
    passengers = models.IntegerField()

我想生成一个查询,我可以在其中找到错误地列出了两种不同型号的汽车。

类似于查询的内容,如果 a car = Wrangler, model = Jeep 查找 car = Wrangler, model 不是 Jeep 的实例。

这可以在 ORM 中完成,还是我需要使用原始 SQL? #django 中有人建议使用子查询,但我不熟悉如何执行此操作

样本输出 将只是不匹配车辆的查询集(例如 car = Wrangler,model = Ford 存在一个对象,但 car = Wrangler,model = Jeep 存在另一个对象)。我在想没有输入只是能够找到不匹配的地方。这有意义吗?

【问题讨论】:

  • 不要这样混淆你的模型。 some carsome model 是什么?外键?
  • 你应该给出一个预期输入和输出的例子。目前有点难以理解你到底是什么意思。

标签: python django django-models django-queryset


【解决方案1】:

如果我理解你需要模型+汽车是唯一的,所以你需要先找到重复的记录:

from django.db.models.aggregates import Count

repetitve_cars_list = Vehicle.objects.values('car').annotate(count_car=Count('car')).filter(co
unt_car__gt=1)

这将为您提供由多个model 定义的cars

【讨论】:

    猜你喜欢
    • 2017-02-13
    • 2019-07-29
    • 1970-01-01
    • 2017-12-26
    • 2014-06-12
    • 2020-08-22
    • 2019-04-15
    • 2011-09-29
    相关资源
    最近更新 更多