[問題] django model和form的用法

作者: lavelle (aa)   2014-07-03 14:23:46
最近在練習用django做一個管理資料庫的工具
目前是把資料庫需要用到的欄位
直接都寫在model的各個field裡面
現在想要增加些功能卻有點卡住
在越寫越長之前 覺得應該要先把觀念學好 po上來問看看 (我用django 1.6)
現在是大致長這樣:
#model.py 用三個欄位當例子 validators等等也都寫在這裡
class Member(models.Model):
member_id = models.CharField(max_length=10, validators=[alphanumeric],
unique = True)
gender = models.CharField(max_length=1, choices = gender_choices, blank =
True)
eligibility = models.BooleanField(default = True)
#view.py 假設是要新增member到資料庫
class MemberCreate(CreateView):
model = Member
在html檔案裡面
{% block content %}
<form method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit" />
</form>
{% endblock %}
這樣我的頁面有一格member id, 一個gender的下拉式選單
eligibility是一個打勾的格子
submit之後, 填入的值直接對應到資料庫裡的table
現在我想要加入 生日的欄位 希望是年月日分開的下拉式選單
還有時區的欄位 希望是radio button
(都是為了練習的裡由 需要這些樣式)
查了documentation發現有幾個widget可以用
可是看到的例子都是用在form field
請問要怎麼改比較好?
是不是應該要有一個form.py然後把選單的東西都寫在那邊
再想辦法把選單內容弄到model field?
還是我可以把所有東西都寫在model.py呢?
覺得自己觀念不太清楚 還不能融會貫通
麻煩高手解說了
作者: uranusjr (←這人是超級笨蛋)   2014-07-03 14:44:00
你想加的欄位是要存到 Member 裡面?
作者: lavelle (aa)   2014-07-04 01:05:00
是的 等於在member資料表中增加欄位 但在網頁上希望是date picker及radio buttons自己回: 我加了ModelForm, 就可以用widgets了

Links booklink

Contact Us: admin [ a t ] ucptt.com