Joh*_*ler 3 python django optimization reverse-lookup
当Entry对象的数量大于5000个条目时,django中有没有办法更有效地执行以下操作?
models.py
class Entry(models.Model):
user = models.TextField(db_column='User', blank=True)
date = models.DateTimeField(blank=True)
class Color(models.Model):
color = models.TextField(blank=True)
entry = models.ForeignKey(Entry)
Run Code Online (Sandbox Code Playgroud)
让我们说我希望获得每个条目的所有颜色......
entrys = Entry.objects.all()
for e in entrys:
print e.color_set.all()
Run Code Online (Sandbox Code Playgroud)
我希望能够将每个对象与特定条目相关联.例如,在像这样的csv表中.
user, color
john, blue
john, orange
bob, green
bob, red
bob, purple
Run Code Online (Sandbox Code Playgroud)
查看我的所有条目需要几秒钟的时间.有没有更好的办法?
你应该用 prefetch_related
entrys = Entry.objects.all().prefetch_related('color_set')
for e in entrys:
print e.color_set.all()
Run Code Online (Sandbox Code Playgroud)
查询将执行2,一个用于条目,一个用于外键查找,而不是执行n