我有两个模型A
和B
。所有B
对象都有一个对象的外键A
。给定一组A对象,无论如何都可以使用ORM获得一组B对象,其中包含为每个A
对象创建的最新对象。
这是一个简化的示例:
class Bakery(models.Model):
town = models.CharField(max_length=255)
class Cake(models.Model):
bakery = models.ForeignKey(Bakery, on_delete=models.CASCADE)
baked_at = models.DateTimeField()
因此,我正在寻找一个查询,该查询返回在美国Anytown的每个面包店中烘焙的最新蛋糕。
据我所知,在Django ORM中没有做到这一点的单步方法。
但是你可以将其分为两个查询:
bakeries = Bakery.objects.annotate(
hottest_cake_baked_at=Max('cake__baked_at')
)
hottest_cakes = Cake.objects.filter(
baked_at__in=[b.hottest_cake_baked_at for b in bakeries]
)
如果蛋糕的ID与bake_at时间戳一起在进行,则可以简化上面的代码并消除歧义(如果两个蛋糕同时到达,则可以同时获得它们):
hottest_cake_ids = Bakery.objects.annotate(
hottest_cake_id=Max('cake__id')
).values_list('hottest_cake_id', flat=True)
hottest_cakes = Cake.objects.filter(id__in=hottest_cake_ids)
我有三节课: 人类 父亲 孩子。 儿童阶级延伸父亲,父亲延伸人类。 我已经创建了每个类的一些实例并将它们存储到ArrayList中。 现在,我想编写一个方法来检查对象father1是否与对象child1地址字段(类Father和Child的实例)具有相同的字段地址(例如:“21 str Goodwin”),并将此方法提供给我的ArrayList,如果发现任何结果,则打印。 我怎么能这样呢? 为了更
问题内容: 我有以下代码。我想掌握用来创建内部类对象的外部类对象。我该怎么做? 编辑:好,你们中的一些人建议通过添加方法来修改内部类: 但是,如果我没有控制权来修改内部类,那(只是确认一下),我们还有其他方法可以从内部类对象中获取相应的外部类对象吗? 问题答案: 在内部类本身中,你可以使用。该表达式允许引用任何词法包围的实例,在JLS中被描述为。 我认为没有办法从内部类的代码之外获取实例。当然,你
问题内容: 在Django 1.0之前,有一种简单的方法来获取对象的管理url,并且我编写了一个小过滤器,如下所示: 基本上我使用的是URL反向功能,视图名称为 获取网址。 你可能已经猜到了,我正在尝试更新到最新版本的Django,这是我遇到的障碍之一,用于获取管理url的方法不再起作用。 如何在Django 1.0中执行此操作?(或者是1.1,因为我正在尝试更新为svn中的最新版本)。 问题答案
问题内容: 假设我们有以下定义的Django ORM模型: 我想获取每种语言的最新聚会。 看来您可以使用Django Aggregates简化 查找过程: 在我看来,这应该获取每种语言的“最新”聚会。但是事实并非如此: 我希望能得到两个最新的Python和Node见面会! 如何构造仅获取每种语言的最新聚会的查询? PS。 我正在使用MySQL作为后端。 问题答案: 将您的条款放在之前。 从聚合文档
我正在开发一个程序,提示用户输入姓名、年龄和性别。该程序应该从每个输入中给我一个姓名、年龄和性别的列表,并告诉我谁是该列表中年龄最大的人。我已经创建了一个数组列表来保存这些值,我可以使用增强循环打印出姓名、年龄和性别。我遇到的问题是让程序打印出数组列表中最高(最老)的数字。我已经创建了一个替代方法,通过创建一个只有年龄的附加数组列表来实现这一点,但是我似乎没有找到从原始数组列表中获取这一点的方法。