[问题] 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