Python 如何使用web.py复选框组
我有一个小表单,我使用它允许用户选择一组他们希望与之交互的大陆。我的表单定义如下Python 如何使用web.py复选框组,python,html,web.py,Python,Html,Web.py,我有一个小表单,我使用它允许用户选择一组他们希望与之交互的大陆。我的表单定义如下 search_form = form.Form( form.Textbox('search_country', description='Country', placeholder='Country to search'), form.Checkbox('search_continent', value='Africa'), form.Checkbox('search_continent'
search_form = form.Form(
form.Textbox('search_country', description='Country', placeholder='Country to search'),
form.Checkbox('search_continent', value='Africa'),
form.Checkbox('search_continent', value='Antarctica'),
form.Checkbox('search_continent', value='Asia'),
form.Checkbox('search_continent', value='Australia'),
form.Checkbox('search_continent', value='Europe'),
form.Checkbox('search_continent', value='North America'),
form.Checkbox('search_continent', value='South America'),
)
我使用这个单独渲染元素,因为我使用Twitter引导开关来创建复选框滑块(下面的预期输出)
这是通过以下方式实现的:
sidebarsearch_form = search_form()
countrySearch = sidebarsearch_form.search_country.render()
continentSearch = sidebarsearch_form.search_continent.render()
formhtml = unicode(render.searchform(searchcountry=countrySearch, searchcontinent=continentSearch))
我的模板看起来像这样
$def with (searchcountry,searchcontinent,form='')
<form method="GET" id="search-form">
<fieldset class="fieldset-grp">
<label>Country</label>
<div class="form-search">
<div class="input-append">
$:searchcountry[0]
</div>
</div>
<label>Continent</label>
<div class="make-switch span11" data-on="success" data-text-label="Africa" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="Antarctica" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="Asia" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="Australia" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="Europe" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="North America" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="South America" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
</fieldset>
</form>
<div class="make-switch span11" data-on="success" data-text-label="Africa" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
<input type="checkbox" id="search_continent_Africa" value="Africa" name="search_continent"/>
</div>
<div class="make-switch span11" data-on="success" data-text-label="Antarctica" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
<input type="checkbox" id="search_continent_Africa" value="Africa" name="search_continent"/>
</div>
<div class="make-switch span11" data-on="success" data-text-label="Asia" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
<input type="checkbox" id="search_continent_Africa" value="Africa" name="search_continent"/>
</div>
<div class="make-switch span11" data-on="success" data-text-label="Australia" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
<input type="checkbox" id="search_continent_Africa" value="Africa" name="search_continent"/>
</div>
$def with(searchcountry、searchContinental、form='')
国家
$:searchcountry[0]
大陆
美元:搜索大陆
美元:搜索大陆
美元:搜索大陆
美元:搜索大陆
美元:搜索大陆
美元:搜索大陆
美元:搜索大陆
输出看起来和我期望的一样
然而,由此生成的HTML并不是我所期望的
我所有的复选框都是这样的
$def with (searchcountry,searchcontinent,form='')
<form method="GET" id="search-form">
<fieldset class="fieldset-grp">
<label>Country</label>
<div class="form-search">
<div class="input-append">
$:searchcountry[0]
</div>
</div>
<label>Continent</label>
<div class="make-switch span11" data-on="success" data-text-label="Africa" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="Antarctica" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="Asia" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="Australia" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="Europe" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="North America" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
<div class="make-switch span11" data-on="success" data-text-label="South America" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
$:searchcontinent
</div>
</fieldset>
</form>
<div class="make-switch span11" data-on="success" data-text-label="Africa" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
<input type="checkbox" id="search_continent_Africa" value="Africa" name="search_continent"/>
</div>
<div class="make-switch span11" data-on="success" data-text-label="Antarctica" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
<input type="checkbox" id="search_continent_Africa" value="Africa" name="search_continent"/>
</div>
<div class="make-switch span11" data-on="success" data-text-label="Asia" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
<input type="checkbox" id="search_continent_Africa" value="Africa" name="search_continent"/>
</div>
<div class="make-switch span11" data-on="success" data-text-label="Australia" data-on-label="<i class='icon-ok icon-white'></i>" data-off-label="<i class='icon-remove'></i>">
<input type="checkbox" id="search_continent_Africa" value="Africa" name="search_continent"/>
</div>
请注意,每个属性的id
和value
属性分别设置为search\u containment\u Africa
和Africa
屏幕截图具有正确值的原因是引导开关
插件使用数据文本标签
来显示值。但是,我希望我的复选框也具有正确的值,以便我可以在后端使用这些数据
问题
要正确呈现此复选框组的HTML,我需要在表单声明或模板中修改哪些内容?在
复选框上的定义上添加属性id:
form.Checkbox('search_continent', value='South America', id="Africa")