import json from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.shortcuts import render, get_object_or_404 from .models import Company 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 def home(request): # 这里不再执行任何数据库查询,直接渲染主页模板 return render(request, 'business_information/home.html') def about_us(request): # 这里不再执行任何数据库查询,直接渲染主页模板 return render(request, 'business_information/about_us.html') def company_list(request): # 尝试打开并加载JSON文件 json_file_path = 'static/file/city.json' try: with open(json_file_path, 'r', encoding='utf-8') as file: city_data = json.load(file) except FileNotFoundError: return render(request, 'business_information/error.html', {'error': 'JSON文件未找到'}) # 尝试打开并加载JSON文件 file_path = 'static/file/industry.json' with open(file_path, 'r', encoding='utf-8') as file: industry_data = json.load(file) # 初始化一个新的字典来存储省份和城市信息 provinces_cities = { "直辖市": ['北京市', '天津市', '重庆市', '上海市'] } # 获取省份数据 province = city_data.get('00') for num, name in province.items(): if name in provinces_cities.get('直辖市'): continue else: provinces_cities[name] = [] for k, v in city_data[num].items(): provinces_cities[name].append(v) # 返回解析后的省份和城市信息 return render(request, 'business_information/company_list.html', {'provinces_cities': provinces_cities, 'industry_data': industry_data}) # 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 # }) def company_detail(request, enterprise_id): company = get_object_or_404(Company, enterprise_id=enterprise_id) return render(request, 'business_information/company_detail.html', {'company': company})