Django-从外键中选择不同的值
很可能有一个明显的方法可以做到这一点,但我没有,所以很抱歉我提出了一个noobish的问题 我有这样的模型:Django-从外键中选择不同的值,django,django-models,Django,Django Models,很可能有一个明显的方法可以做到这一点,但我没有,所以很抱歉我提出了一个noobish的问题 我有这样的模型: class Speaker(models.Model): name = models.CharField(max_length=50) class Talk(models.Model): title = models.CharField(max_length=50) speaker = models.ForeignKey(Speaker) 我怎样才能优雅地得到
class Speaker(models.Model):
name = models.CharField(max_length=50)
class Talk(models.Model):
title = models.CharField(max_length=50)
speaker = models.ForeignKey(Speaker)
我怎样才能优雅地得到所有演讲人的名单
目前,我正在做一些可怕的事情,获取所有会谈的列表并循环它们,因为我看不到使用Django的ORM的简单方法
Speaker.objects.exclude(talk=None)
或
编辑:
查看底层SQL(通过在表达式末尾添加.query.as_SQL()
),后一种形式似乎效率更高。前者执行完全不必要的子查询
我怀疑这是一个bug,因为第一个表单是在1.0版之前发生的大规模queryset重构中引入的,应该是首选表单。出于兴趣-这两者之间是否存在行为或性能差异?@Daniel-看起来这已经有了一张票()。但不知道什么时候能修好,因为马尔科姆最近似乎在Django开发中并不那么活跃。
Speaker.objects.filter(talk__isnull=False)