第一步:首先,在models.py中定义一个表单模型
那个topic中的choices需要在models.py中定义一个数组.
这样,之后在html显示的表单就采用这个模型的数据了。
另外还有一种定义表单模型的方式,那就是直接继承另一个models。如果我们在models里设计数据库时,已经设计好了一个类(就是数据库的表)之后想复用这个类的信息来作为表单的模型,那么很简单,同样是在models中的一个类
注意,他的类型是models.Model,是做数据库ORM用的。
然后怎么关联呢?
需要导入一个新的类 (ModelForm)
from django.forms import ModelForm
class ContactForm(ModelForm):
class Meta:
model = Advertisement
fields = ('Title', 'CustomerID')
这里的Advertisement就是之前那个ORM的模型。
第二步:OK,继续我们的表单,下一步需要做什么呢?开始在views.py里写对表单的调用吧.
整个代码很简单。
第三步:django里任何访问都是通过urls.py来管理的。所以下面我们需要配置一个路径。
第四步:最后应该是建立一个模板的时候了,因为我们最终是输出到html上的.注意views的remark函数最后一行
就是讲当前的表单对象输出到message.html里,自动生成一个表单。
所以,先构建一个html.
这个html模板很简单,除去不必要的CSS,我只给出核心部分好啦。
<form action="/message/" method="POST">
{% for field in form %}
<div class="fieldWrapper">
{{ field.label_tag }}:{{ field }}
{{ field.errors }}
</div>
{% endfor %}
<div class="fieldWrapper"><p><input type="submit" value="留言" /></p></div>
</form>
{% for field in form %}
{% endfor %}
用于对表单对象里的元素进行遍历,然后通过
这三个标签来输出,注意{{ field.errors }}默认情况下是不会输出的,只有当验证表单正确性时才会输出内容。
最后,通过http://youdjangourl/message来访问这个例子
如下图: