Pycharm上Django的使用 Day8

1.添加新条目

1>编写用于添加新条目的表单

在forms.py中创建一个与模型Entry相关联的表单

1处给字段'text'指定一个空标签

2处定义小部件widgets,widgets是一个HTML表单元素

2>定义new_entry的URL模式

在用于添加新条目的页面的URL模式中,需要包含实参topic_id,因为条目必须与特定主题相关联。请求的URL与这个模式匹配时,Django将请求和主题ID发送给函数new_entry()

3>编写视图函数

1处表示使用形参topic_id来获得正确的主题

2,3处都与上一节编写的new_topic一样的

4处表示如果请求方法是POST,我们就对数据进行处理:创建一个EntryForm实例,使用request对象中的POST数据来填充它

5处调用save()时,我们传递了实参commit = False,目的是让Django创建一个新的条目对象,并将其存储到new_entry中,但不将它保存到数据库中

6处表示我们将new_entry的属性topic设置为在这个函数开头从数据库中获取的主题,然后调用save(),这将把条目保存到数据库,并将其与正确的主题相关联

7处表示调用HttpResponseRedirect()将用户重定向到显示新增条目所属主题的页面,用户将在该页面的条目列表中看到新添加的条目

4>编写模板new_entry.html

1处表示添加一个链接,让用户知道他是在哪个主题中添加条目

2处表单实参action包含URL中的topic_id值,让视图函数能够将新条目关联到正确的主图,实参method让浏览器以POST方式提交数据

5>链接到页面new_entry

我们需要在显示特定主题的页面中添加到页面new_entry的链接

6>运行manage.py

点击Topics下面的任一一个主题,比如Dota2吧

点击add new entry

点击add entry

网页跳转到Dota2的entries下,并列出新添加的entry,上图红圈就是哈

猜你喜欢

转载自my.oschina.net/u/4011629/blog/2879016
今日推荐