0
如果检测到GET请求,我已经编写了索引和搜索视图,它只返回搜索结果,否则返回所有记录。我在下面写了这个观点,但我觉得我重复了一下自己。任何想法,我如何能稍微减少这些代码将不胜感激。重构索引/搜索视图
def index(request):
if 'q' in request.GET:
company_list = Company.objects.filter(
Q(company__icontains = request.GET['q']) |
Q(county__icontains = request.GET['q']) |
Q(city__icontains = request.GET['q']) |
Q(product_description__icontains = request.GET['q'])
)
query = request.GET['q']
else:
company_list = Company.objects.all()
paginator = Paginator(company_list, 10)
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try:
companies = paginator.page(page)
except (EmptyPage, InvalidPage):
companies = paginator.page(paginator.num_pages)
if 'q' in request.GET:
return render_response(request, 'database/index.html', {"companies": companies, "query": query})
else:
return render_response(request, 'database/index.html', {"companies": companies})