[英]AttributeError: 'Resume' object has no attribute 'prefetch_related'
[英]Which attribute of SearchQuerySet has the same function as prefetch_related?
def get_books_by_query_params(context, query, query_parameters):
binding_query = query_parameters['binding_query']
query_parameters['validate']=1
default_query = None
if query:
default_queries = [
Q(title__icontains=query),
Q(isbn_10__contains=query),
Q(isbn_13__contains=query),
Q(publishers=Publisher.objects.filter(name=query)),
Q(institutes=Institute.objects.filter(name=query)),
Q(authors=Author.objects.filter(name=query)),
Q(sellers=Seller.objects.filter(name=query))
]
default_query = reduce(operator.or_, default_queries)
default_query = default_query & binding_query if binding_query is not None else default_query
elif binding_query is not None:
default_query = binding_query
if default_query is not None and query_parameters['query_parameters'] is not None:
books = Book.objects.filter(default_query, validate=1, **query_parameters['query_parameters']).distinct()\
.prefetch_related('authors').prefetch_related('publishers').prefetch_related('sellers').prefetch_related('institutes')
elif query_parameters['query_parameters']:
books = Book.objects.filter(validate=1,**query_parameters['query_parameters']).distinct()\
.prefetch_related('authors').prefetch_related('publishers').prefetch_related('sellers').prefetch_related('institutes')
elif default_query:
books = Book.objects.filter(default_query,validate=1).distinct().prefetch_related('authors').prefetch_related('publishers').prefetch_related('sellers').prefetch_related('institutes')
else:
books = Book.objects.filter(validate=1).distinct().prefetch_related('authors').prefetch_related('publishers').prefetch_related('sellers').prefetch_related('institutes')
context['books'] = books
return context
如何使用searchqueryset編寫以下代碼? 在這種情況下,可以使用searchqueryset中的prefetch_related
的等效項嗎?
有filter_and
:
SearchQuerySet.filter_and(self, **kwargs)
通過查找(包括)某些屬性來縮小搜索范圍。 查詢中的聯接行為被強制為AND。 主要用於過濾方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.