【发布时间】:2016-04-13 20:11:53
【问题描述】:
我的 Django 项目中有两个模型
class BookSerie(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=255)
class BookVolume(models.Model):
isbn = models.CharField(max_length=17)
volumeNumber = models.PositiveIntegerField()
serie = models.ForeignKey(BookSerie)
def __str__(self):
return self.serie.title+" volume "+str(self.volumeNumber)+" - "+str(self.isbn)
我只将 __ str __ 用于我的管理面板,但是当我在视图中使用此代码时(id=1 的系列有 5 卷):
def serieDetails(request, title):
try:
seriequery = BookSerie.objects.get(slug=title)
BookVolume.objects.filter(serie=seriequery).order_by('volumeNumber')
except BookSerie.DoesNotExist:
raise Http404("Serie does not exist")
return render(request, 'book/serieDetails.html', {'serie': seriequery, 'volumes' : volumesquery})
我有一个重要的问题:
Query SELECT ••• FROM "book_bookserie" WHERE "book_bookserie"."id" = '1' 执行 5 次(django 调试工具栏给出此代码行 return self.serie.title+" volume "+str (self.volumeNumber)+" - "+str(self.isbn)
查询 SELECT ••• FROM "book_bookvolume" WHERE "book_bookvolume"."serie_id" = '1' ORDER BY "book_bookvolume"."volumeNumber" ASC 执行2次
【问题讨论】:
标签: python sql django database-performance