【发布时间】:2021-12-27 11:48:47
【问题描述】:
假设我有 2 个具有外键关系的模型,用于捆绑书籍:
class Bundle(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
name = models.CharField(max_length=20)
isbn = models.CharField(max_length=13)
bundle = models.ForeignKey(Bundle)
我们将通过将 ISBN 编号与分隔符连接起来来识别捆绑包,如下所示:
123456788 & 123456789
要进一步导出可用捆绑包列表以供进一步处理,我们需要该数字。
我知道我可以使用:
for bundle in Bundle.objects.all():
complex_isbn = ' & '.join(bundle.book_set.all().values_list('isbn', flat=True))
但这对于现实世界的目的来说太慢了。 有没有办法我可以使用注释来完成这个?如果是这样,怎么做?我正在努力寻找如何完成连接多个外键条目的文档。
【问题讨论】:
-
你使用什么数据库?
-
@WillemVanOnsem Postgres
标签: django postgresql django-queryset django-annotate django-aggregation