2024-03-28 19:21:35 +08:00
|
|
|
|
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
2024-03-27 14:50:00 +08:00
|
|
|
|
from django.shortcuts import render, get_object_or_404
|
|
|
|
|
from .models import Company
|
|
|
|
|
|
2024-03-28 19:21:35 +08:00
|
|
|
|
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
|
|
|
|
from django.shortcuts import render, get_object_or_404
|
|
|
|
|
from .models import Company
|
|
|
|
|
from django.db.models import Q
|
|
|
|
|
|
|
|
|
|
|
2024-04-07 18:03:42 +08:00
|
|
|
|
def home(request):
|
|
|
|
|
# 这里不再执行任何数据库查询,直接渲染主页模板
|
|
|
|
|
return render(request, 'business_information/home.html')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def about_us(request):
|
|
|
|
|
# 这里不再执行任何数据库查询,直接渲染主页模板
|
|
|
|
|
return render(request, 'business_information/about_us.html')
|
|
|
|
|
|
|
|
|
|
|
2024-03-28 19:21:35 +08:00
|
|
|
|
def company_list(request):
|
|
|
|
|
# 获取查询参数
|
|
|
|
|
query_name = request.GET.get('name', '')
|
|
|
|
|
query_province = request.GET.get('province', '')
|
|
|
|
|
query_city = request.GET.get('city', '')
|
|
|
|
|
query_district = request.GET.get('district', '')
|
|
|
|
|
query_industry = request.GET.get('industry', '')
|
|
|
|
|
|
|
|
|
|
# 构建查询条件(Q 对象用于执行复杂查询)
|
|
|
|
|
query_conditions = Q()
|
|
|
|
|
if query_name:
|
|
|
|
|
query_conditions &= Q(name__icontains=query_name)
|
|
|
|
|
if query_province:
|
|
|
|
|
query_conditions &= Q(province__icontains=query_province)
|
|
|
|
|
if query_city:
|
|
|
|
|
query_conditions &= Q(city__icontains=query_city)
|
|
|
|
|
if query_district and query_district != '区域':
|
|
|
|
|
query_conditions &= Q(district__icontains=query_district)
|
|
|
|
|
if query_industry and query_industry != '行业':
|
|
|
|
|
query_conditions &= Q(industry__icontains=query_industry)
|
|
|
|
|
|
|
|
|
|
# 如果'区域'和'行业'都是默认选项,则返回所有记录
|
|
|
|
|
if query_district == '区域' and query_industry == '行业':
|
|
|
|
|
query_conditions = Q() # 这将匹配所有公司
|
|
|
|
|
|
|
|
|
|
# 过滤查询集
|
|
|
|
|
companies = Company.objects.filter(query_conditions)
|
|
|
|
|
|
|
|
|
|
# 获取区域和行业列表
|
|
|
|
|
districts = Company.objects.values_list('district', flat=True).distinct().order_by('district')
|
|
|
|
|
districts = [district for district in districts if district != '区域']
|
|
|
|
|
industries = Company.objects.values_list('industry', flat=True).distinct().order_by('industry')
|
|
|
|
|
industries = [industry for industry in industries if industry != '行业']
|
|
|
|
|
|
|
|
|
|
# 分页
|
|
|
|
|
paginator = Paginator(companies, 10) # 每页显示10条记录
|
|
|
|
|
page = request.GET.get('page', 1)
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
companies = paginator.page(page)
|
|
|
|
|
except PageNotAnInteger:
|
|
|
|
|
companies = paginator.page(1)
|
|
|
|
|
except EmptyPage:
|
|
|
|
|
companies = paginator.page(paginator.num_pages)
|
|
|
|
|
|
|
|
|
|
return render(request, 'business_information/company_list.html', {
|
|
|
|
|
'companies': companies,
|
|
|
|
|
'districts': districts,
|
|
|
|
|
'industries': industries,
|
|
|
|
|
'query_name': query_name,
|
|
|
|
|
'query_province': query_province,
|
|
|
|
|
'query_city': query_city,
|
|
|
|
|
'query_district': query_district,
|
|
|
|
|
'query_industry': query_industry
|
|
|
|
|
})
|
|
|
|
|
|
2024-03-27 14:50:00 +08:00
|
|
|
|
|
|
|
|
|
def company_detail(request, enterprise_id):
|
|
|
|
|
company = get_object_or_404(Company, enterprise_id=enterprise_id)
|
2024-03-28 19:21:35 +08:00
|
|
|
|
return render(request, 'business_information/company_detail.html', {'company': company})
|