如果我有以下模型,描述可以有几个不同标题的书籍:
class Book(models.Model):
publisher = models.CharField(max_length=255)
class BookTitle(models.Model):
work = models.ForeignKey(Book, related_name="titles", on_delete=models.CASCADE)
title = models.CharField(max_length=255)
我正在获取一个QuerySet of Books,预获取它们的BookTitles,像这样:
from django.db.models import Prefetch
books = Book.objects.prefetch_related(
Prefetch(
"titles",
queryset=BookTitle.objects.all()
)
)
我希望能够按BookTitles中的第一个排序QuerySet。如何执行此操作?
(This是我的实际代码的一个非常简化的示例,用于解释基本问题。)
1条答案
按热度按时间yacmzcpb1#
如果我没有理解错的话,您希望按每本书的第一个书名排序所有书籍。您可以通过将第一个书名注解到查询中,然后按该书名排序来实现: