class CustomerList(View):
def get(self, request):
print('当前用户{}'.format(self.request.user))
q = self.search_condition(['qq', 'name', 'last_consult_date']) # 做查询使用
if request.path_info == reverse('crm:customer_list'):
all_customer = models.Customer.objects.filter(q, consultant=None) # 默认展示公户
else:
all_customer = models.Customer.objects.filter(q, consultant=request.user) # 默认展示公户
"""
<QueryDict: {'query': ['alex']}>
将查询参数复制一份, 传入分页
"""
query_params = request.GET.copy()
pag_obj = Pagination(request, len(all_customer, ), query_params=query_params, each_page_show_number=2)
return render(request, 'crm/costumer_list.html',
# 分页
{'all_customer': all_customer[pag_obj.each_page_start_number:pag_obj.each_page_end_number],
'page_html': pag_obj.html_str
})
# 定制自己的查询
def search_condition(self, query_list): # 参数接收一个查询列表,只要在列表里面的都被查询
query = self.request.GET.get('query', '') # 从form 表单里面找到 query 关键字
print('本次搜索关键字是{}'.format(query))
query_obj = Q() # 生成 Q 对象
query_obj.connector = 'OR' # or 或的连接关系
for i in query_list:
query_obj.children.append(Q(('{}__contains'.format(i), query))) # 固定格式
return query_obj
# 实际的拼接效果如下,是查询的另一种写法.
# Q(('qq__contains', query)) | Q(('name__contains', query))
# 这是传统的写法
# Q( Q(qq__contains=query) | Q(name__contains=query) )
今天我感觉已经快要gg了,我是不是不行了,头眼昏花...
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。