我有一个Django模型:
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.PROTECT)
@property
def slug(self):
return slugify(self.author.name)
现在,如果我将slug
字段添加到管理员list_display
,那么每个实例都将有一个单独的查询。
如何对所有实例只进行一个查询?
我尝试在ModelAdmin
类中使用select_related
,但没有成功。
您可以覆盖ModelAdmin的get_queryset((来添加select_related。
def get_queryset(self, request):
return super().get_queryset(request).select_related('author')
还有listrongelect_related选项,我认为它更直接。
class BookAdmin(admin.ModelAdmin):
list_select_related = ['author']