Django Bootstrap Form

這篇也是拖很久了 XD 大概半年前 twitter bootstrap 出來的時候, 我就寫了 django bootstrap form 放上了 github, 然後就開始用在 production, 像是 myaudiocast, stickeraciton 跟 streetvoice 都有用上。

不過因為一直沒時間研究怎麼放上 pypi, 就想說也不方便 release, 畢竟不能透過 pip 安裝的話, 還是有點遜 XD 所以就一直沒有寫篇文章來正式發表, 一直到今天早上才研究了一下, 終於放上 pypi 了 :D

截至目前為止 django bootstrap form 有 46 個 watch, 也有一些人 fork, 至少有人用了, 哈。 稍微來說明一下怎麼使用好了。

首先, 透過 pip 安裝

$ pip install django-bootstrap-form`

然後在 INSTALLED_APPS 加上 bootstrapform

INSTALLED_APPS = (  
    # ...
    'bootstrapform',
)

接著在 template 裡面就可以開始用了

{% load bootstrap %}

這樣馬上就給你一個符合 twitter bootstrap 樣式的表單了 :D

其實有另一個 django bootstrap 的 implement, django-bootstrap, 不過他是透過繼承 Form / ModelForm 來產生, 我覺得這是一個錯誤的方向, 雖然說他的 watch 跟 fork 多很多 XD

為什麼說他的方向是錯的, 首先, django 主要是以 app 的方式來搭建, 例如當你要安裝 django-bootatrap-form, 最直接的方式是透過 pip 來安裝, 安裝後這個 packages 會放在 site-packages 裡面, 而不是把 code 整個放進你的 repo。

所以如果你安裝了 django-userena 這個 packages 來處理你的會員登入/註冊, 你不可能直接修改 django-userena 裡面所有的 form 去繼承 django-bootstrap 的 form 阿。

即便你可以這麼做好了, 直接改 template 還是比改 form 簡單多了阿, 更何況是 django-bootstrap 要改 form 又要改 template XD

光從這一點就可以知道這是個錯誤的方向, 我不知道哪來這麼多人 watch / fork XD 另外就是, 之後的 django 也準備把原先 form 的方式給換掉, 因為把一些 html 寫在裡面開始有人覺得不對, 應該要抽出來。

其實一開始 django-bootstrap 作者跟我討論過我們兩個 implement 的方式, 要不要一起合力弄一個 django-bootstap 就好, 我只跟他說我覺得你的方式不太對, 跟我希望的不一樣, 還是分開搞好了 XD

最後, 有沒有 python developer 要來敝公司 StreetVoice 工作的阿? 歡迎來談談聊聊天阿 XD 請來信 tzangms [at] streetvoice.com

tzangms

Read more posts by this author.

Subscribe to Oceanic / 海海人生

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!