6.5 JLL--实习日志
来源:互联网 发布:python tf idf 的代码 编辑:程序博客网 时间:2024/05/22 02:12
1.循环的机制有问题
def containsAnyInList(list, aset): for item in list: if containsAny(item, aset): return True return Falsedef containsAny(seq, aset): for c in seq: if c in aset: return True return False
view_availability函数的实现
1. 获取availabilities 没有过期的对象
availabilities = Availability.objects.filter(RecordEndDate="NULL").order_by('UpdateDate')
2.判断message是否存在,得到一个popout 的功能!
if request.GET.get('message'): message_for_add_result = request.GET.get('message')
2.判定是不是有权限!如果没有权限,删除对应的id=item.id,同时也删除过期数据
for item in availabilities: if not can_access(item, request): availabilities=availabilities.exclude(id=item.id) elif not item.Property.RecordEndDate=='NULL': availabilities=availabilities.exclude(id=item.id)
3.如果可以得到request.GET.get() 值说明可以是按了搜索的按钮了
if request.GET.get('a'): value_lower_1 = float(request.GET.get('a')) value_upper_1 = float(request.GET.get('b')) value_lower_2 = float(request.GET.get('d')) value_upper_2 = float(request.GET.get('e')) province_name = request.GET.get('f') filter_text = request.GET.get('c')
4.判定的逻辑:
如果省份的按钮框存在并且不是all ,删除对应的非province_name的值,
如果 filter_text的框是有值的,先创建一个value_list的列表,里面存放的 包涵的选择项,应该是每一个item的选择项,是用一个函数containsAnyInList判定是不是在里面,如果不在,就exclude对应的id
if province_name and province_name != 'All': if item.Province != province_name: availabilities=availabilities.exclude(id=item.id) if filter_text:#search box value_list = [item.Property.NameUnicode, item.Unit, item.AvailableDate, item.Property.Access_Nearest_IC, item.Property.Access_Nearest_Station] if not views.containsAnyInList(value_list, filter_text): availabilities=availabilities.exclude(id=item.id)
5.判断两个bar上的值是不是存在,如果不存在首先给0,exclude对应的不在范围里面的值:
if item.UnitRental == "": item.UnitRental = '0' if item.Rent_Area =="": item.Rent_Area = '0' try: if float(item.UnitRental) < value_lower_1 or float(item.UnitRental) > value_upper_1: availabilities = availabilities.exclude(id=item.id) if float(item.Rent_Area)< value_lower_2 or float(item.Rent_Area) > value_upper_2: availabilities = availabilities.exclude(id=item.id) except: availabilities = availabilities.exclude(id=item.id)
6.初始化对应bar 的值,四个框里面的值,利用的函数checkrange
output_one = views.checkrange(availabilities,'UnitRental',request)#??? 'ProjectArea',UnitRental,Rent_Area output_two = views.checkrange(availabilities,'Rent_Area',request) price_min_range_one = output_one.min_range price_max_range_one = output_one.max_range price_min_range_two = output_two.min_range price_max_range_two = output_two.max_range
7.返回值render_to_response,
render_to_response(ui_sets['search_availability_list'], {'price_min_range_one':price_min_range_one,'price_max_range_one':price_max_range_one,'price_min_range_two':price_min_range_two,'price_max_range_two':price_max_range_two, 'availabilities': availabilities, 'message_for_add_result': message_for_add_result, 'untable_selection_box':untable_selection_box, }, context_instance = RequestContext(request))
2. view_availability函数的改进,完整代码如下
@login_requireddef view_availability(request): availabilities = Availability.objects.filter(RecordEndDate="NULL").order_by('UpdateDate') message_for_add_result = "null" if request.GET.get('message'): message_for_add_result = request.GET.get('message') for item in availabilities: if not can_access(item, request): availabilities=availabilities.exclude(id=item.id) elif not item.Property.RecordEndDate=='NULL': availabilities=availabilities.exclude(id=item.id) else: item.AvailableDate = str(item.AvailableDate) if request.GET.get('a'): value_lower_1 = float(request.GET.get('a')) value_upper_1 = float(request.GET.get('b')) value_lower_2 = float(request.GET.get('d')) value_upper_2 = float(request.GET.get('e')) province_name = request.GET.get('f') filter_text = request.GET.get('c') if province_name and province_name != 'All': if item.Province != province_name: availabilities=availabilities.exclude(id=item.id) if filter_text:#search box value_list = [item.Property.NameUnicode, item.Unit, item.AvailableDate, item.Property.Access_Nearest_IC, item.Property.Access_Nearest_Station] if not views.containsAnyInList(value_list, filter_text): availabilities=availabilities.exclude(id=item.id) if item.UnitRental == "": item.UnitRental = '0' if item.Rent_Area =="": item.Rent_Area = '0' try: if float(item.UnitRental) < value_lower_1 or float(item.UnitRental) > value_upper_1: availabilities = availabilities.exclude(id=item.id) if float(item.Rent_Area)< value_lower_2 or float(item.Rent_Area) > value_upper_2: availabilities = availabilities.exclude(id=item.id) except: availabilities = availabilities.exclude(id=item.id) output_one = views.checkrange(availabilities,'UnitRental',request)#??? 'ProjectArea',UnitRental,Rent_Area output_two = views.checkrange(availabilities,'Rent_Area',request) price_min_range_one = output_one.min_range price_max_range_one = output_one.max_range price_min_range_two = output_two.min_range price_max_range_two = output_two.max_range return render_to_response(ui_sets['search_availability_list'], {'price_min_range_one':price_min_range_one,'price_max_range_one':price_max_range_one,'price_min_range_two':price_min_range_two,'price_max_range_two':price_max_range_two, 'availabilities': availabilities, 'message_for_add_result': message_for_add_result, 'untable_selection_box':untable_selection_box, }, context_instance = RequestContext(request))
阅读全文
0 0
- 6.5 JLL--实习日志
- 5.3 JLL 实习日志
- 5.5 JLL 实习日志
- 5.9 JLL实习日志
- 5.27 JLL--实习日志--
- 6.16-6.19 JLL--实习日志--
- 5.26 JLL--实习日志--Primary_Image+total_setting
- 6.15 JLL--实习日志--SetupNewWorkSpace on cloud9
- 7.14-7.21 JLL实习日志-DropDownBox Upgrade
- 8.29-8.30 JLL实习日志-validate deprecated
- 9.1-9. JLL实习日志-未完结
- 6.5 JLL--实习日志--改变数据库结构update+修改下拉框
- 5.4 JLL 实习日志 –form 表单问题
- 5.11 JLL实习日志-实现download功能实现
- 5.10 JLL实习日志-实现upload 功能实现
- 5.12 JLL实习日志-实现download功能实现
- 5.12 JLL实习日志-实现Anjular Js 功能实现
- 5.19 JLL--实习日志--view_availability前端和后端
- 机器学习算法实现解析——libFM之libFM的训练过程之SGD的方法
- B-1007
- webpack入门的配置遇到的问题
- java spring 皮毛
- 2018计算机考研政治总结3
- 6.5 JLL--实习日志
- [YTU]_2428(C语言习题 计算该日在本年中是第几天)
- 解决mac下adb devices命令找不到设备
- html、表格自动换行
- HTML <label> 标签的 for 属性
- 大数据竞赛平台——Kaggle 入门
- Android Studio升级到2.3时 打包生成apk会出现错误zh
- 蓝桥杯 BASIC-22 基础练习 FJ的字符串
- [YTU]_2577( 小数计算——结构体)