2019独角兽企业重金招聘Python工程师标准>>>
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,上图红圈就是哈