与django预取相关的更通用形式
django-prefetch-plus的Python项目详细描述
预取加上
>BR/=>BR/> BR/>预取加法的目的是为Django内置的
预取相关函数增加额外的灵活性。
使用内置的预取相关,您只能通过
反向foreignkey关系选择相关对象。使用prefetch plus,您可以通过将列从一个表映射到另一个表来选择与
相关的对象。
管理器:
prefetch plus附带了prefetch plusqueryset,它提供了与预取相关的类似接口:
``
from prefetch plus import prefetch plusqueryset
from django.db import models
genres=(
…
(“浪漫”、“浪漫”),
(“神秘”、“神秘”),
)
class author(models.model)
…
genre=models.charfield(
choices=genres
)
…
objects=prefetchplusqueryset.as_manager()
类书(models.model)
…
author=models.foreignkey(
author
)
=models.charfield(
choices=genre s
)
…
=list(book.objects.filter(genre=author.genre))
查询集=book.objects.all(),
obj_cols=”genre“,
qset_cols=”genre“
)。all()
obj_cols&qset_cols也可以是允许
“组合键”的列元组。元组的长度必须相同,对于任何i
我强烈建议您记住,如果这样做,请选择“相关”。否则,您将无法从
qset_cols='author_u genre'
).all()
````
它只需在适当的时间调用
```
from prefetch_plus import do_prefetch_plus
from django.db import models
genres=(
…
('romance','romance'),
('crossy','crossy'),
)
class author(models.model)
…
genre=models.charfield(
choices=genres
)
…
类书(models.model)
…
author=models.foreignkey(
author
genre=models.charfield(
choices=genres
)
…
qset_cols='genre'
)
```
version history
----
0.3.3:使预取速度更快,但在复合键的情况下可能会获取额外的
记录。2.7固定支架
>BR/=>BR/> BR/>预取加法的目的是为Django内置的
预取相关函数增加额外的灵活性。
使用内置的预取相关,您只能通过
反向foreignkey关系选择相关对象。使用prefetch plus,您可以通过将列从一个表映射到另一个表来选择与
相关的对象。
管理器:
prefetch plus附带了prefetch plusqueryset,它提供了与预取相关的类似接口:
``
from prefetch plus import prefetch plusqueryset
from django.db import models
genres=(
…
(“浪漫”、“浪漫”),
(“神秘”、“神秘”),
)
class author(models.model)
…
genre=models.charfield(
choices=genres
)
…
objects=prefetchplusqueryset.as_manager()
类书(models.model)
…
author=models.foreignkey(
author
)
=models.charfield(
choices=genre s
)
…
=list(book.objects.filter(genre=author.genre))
查询集=book.objects.all(),
obj_cols=”genre“,
qset_cols=”genre“
)。all()
obj_cols&qset_cols也可以是允许
“组合键”的列元组。元组的长度必须相同,对于任何i
我强烈建议您记住,如果这样做,请选择“相关”。否则,您将无法从
qset_cols='author_u genre'
).all()
````
它只需在适当的时间调用
```
from prefetch_plus import do_prefetch_plus
from django.db import models
genres=(
…
('romance','romance'),
('crossy','crossy'),
)
class author(models.model)
…
genre=models.charfield(
choices=genres
)
…
类书(models.model)
…
author=models.foreignkey(
author
genre=models.charfield(
choices=genres
)
…
qset_cols='genre'
)
```
version history
----
0.3.3:使预取速度更快,但在复合键的情况下可能会获取额外的
记录。2.7固定支架