- Conservation of JLL broker 的 下拉框设置
特点 是不需要 删选 重复 的 用户 ,因为 不会有 这样 的情况 ,直接 在 view_conservation里面 选择所有 的 JLL_brokerJLL_brokers= UserRole.objects.all()
然后 在 template 端 做一个 循环
<div class="col-md-4">
<div class="input-group ">
<span class="input-group-addon btn-danger"> {{ui_setting.JLLBroker }}</span>
<select id="insert_value" class="form-control" multiple="multiple" style="display:none" >
{% for JLLBroker in JLL_brokers %}
<option value='{{ JLLBroker.id }}' id='{{ JLLBroker.id }}'>{{ JLLBroker.user_nickname }}</option>
{% endfor %}
</select>
</div>
</div>
conservation_Type in Conseravtion
form_policy端
conversation_type_choices = [('1',u'brand update'),('2',u'property update'),('3',u'market data share'),('4',u'general')]
selection_box 端
添加 selection_box = [,conversation_type_choices]
form端 添加
class Conversation_Brand_Form(ModelForm):
class Meta:
model = Conversation_Brand
fields = form_setting.form_sets.conversation_brand_form
company_contact_form_required = form_setting.form_sets.conversation_brand_form_required
widgets = {
'Conversation_type':forms.Select(choices=conversation_type_choices),
}
view 端 ,把 conversation_type_choices
传到 前端 去
conversation_type_choices = form_sets.conversation_type_choices
template 端 ,利用 循环 得到 下拉框 的 形式
<div class="col-md-4">
<div class="input-group ">
<span class="input-group-addon btn-danger">{{ ui_setting.Conversation_type }}</span>
<select id="filter-display" class="form-control" multiple="multiple" style="display:none">
<option value='' id=''></option>
{% for k,v in conversation_type_with_uniq_names_2 %} <option value='{{ k }}' id='{{ k }}'>{{ v }}</option>
{% endfor %}
</select>
</div>
</div>
CityName in Company 需要在 这边 做一个 筛选 的 机制 ,需要 把 相同 的 城市 名称 去掉
view 端 ,筛选 代码 ,使用 的 是 set()方式
参考 的 地址 是 这边
companies = Company.objects.all()
cities_seen = set()
cities_unique = []
for company in companies:
if company.City not in cities_seen:
cities_unique.append(company)
cities_seen.add(company.City)
if filtervalue or company_type or city_name:
companies = Company.objects.all()
for item in companies:
if filtervalue:
value_list = [item.Pref_Company_Name_Flg, item.Pref_Company_Name, item.Company_Type, item.Company_Name, item.Company_Name_SC, item.Pref_Client_Name, item.Country,item.City,item.Address]
if not views.containsAnyInList(value_list,filtervalue):
companies=companies.exclude(id=item.id)
if company_type:
company_type_list = company_type.split(',')
print 'company_type',company_type,'company_type_list',company_type_list,'item.Company_Type',item.Company_Type
if not views.containsAnyStringInList(company_type_list, item.Company_Type):
companies=companies.exclude(id=item.id)
if city_name:
city_name_list = city_name.split(',')
print 'city_name_list',city_name_list,'item.City',item.City
if not views.containsAnyStringInList(city_name_list, item.City):
companies=companies.exclude(id=item.id)
return render_to_response(ui_sets['search_company_list'], {'companies': companies, 'message_for_add_result':message_for_add_result,'companies_with_uniq_names':choices,'cities_with_uniq_names':cities_unique}, context_instance = RequestContext(request))
template 端,这边 的 value和 id 都是 使用 的string 类型 的 ,因为 在 添加 新的 city的 时候city那 一栏 没有 使用 下拉框 机制 使用 的 是 任意 填写 的 方式
<div class="col-md-4" >
<div class="input-group ">
<span class="input-group-addon btn-danger">{{ ui_setting.City }}</span>
<select id="insert_value" class="form-control" multiple="multiple" style="display:none">
{% for city in cities_with_uniq_names %}
<option value='{{ city.City }}' id='{{ city.City }}'>{{ city.City }}</option>
{% endfor %}
</select>
</div>
</div>