2013-07-24 58 views
1

我使用web.py在我的支持生成一個窗體。我也想使用bootstraps表單類。這是我的HTML使用引導與web.py的形式

<form name="test" method="POST"> 
    $:form.render() 
    <input type="submit" name="button" value="Login" /> 
    </form> 

,當由web.py產生的片段,變成

<form name="login" method="POST" class = "register"> 
<table> 
    <tr><th><label for="username">Username:</label></th><td><input type="text" id="username" name="username"/></td></tr> 
    <tr><th><label for="password">Password:</label></th><td><input type="password" id="password" name="password"/></td></tr> 
    <tr><th><label for="password_again">Repeat your password:</label></th><td><input type="password" id="password_again" name="password_again"/></td></tr> 
</table> 
<input type="submit" value="Register" /> 
</form> 

不過。這使得向我的代碼添加引導程序功能很困難。直接從引導網站 一個例子是:

<form> 
    <fieldset> 
    <legend>Legend</legend> 
    <label>Label name</label> 
    <input type="text" placeholder="Type something…"> 
    <span class="help-block">Example block-level help text here.</span> 
    <label class="checkbox"> 
     <input type="checkbox"> Check me out 
    </label> 
    <button type="submit" class="btn">Submit</button> 
    </fieldset> 
</form> 

是否有可能這些各種各樣的功能添加到我的形式?

回答

1

改爲使用$:form.render_css()

0

我寫了繼承自Form類的類,修改後的render_css方法。它看起來像這樣:

class bootstrap_form(form.Form): 
def render_bootstrap(self): 
    from web import net 
    out = [] 
    out.append(self.rendernote(self.note)) 
    for i in self.inputs: 
     out.append('<div class="form-group">') 
     if not i.is_hidden(): 
      out.append('<label for="%s">%s</label>' % (i.id, net.websafe(i.description))) 
     out.append(i.pre) 
     out.append(i.render()) 
     out.append(self.rendernote(i.note)) 
     out.append(i.post) 
     out.append('</div>') 
     out.append('\n') 
    return ''.join(out) 

我希望你會發現這個有用的。