多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] >[success] # index.html 写法 ~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <style> </style> <body> <ul> {% for student in students %} <li>{{ student.name }}-{{ student.get_status_display }}</li> {% endfor %} </ul> <form action="/" method="post"> {% csrf_token %} {{ form.as_p}} <input type="submit" value="Submit" /> </form> </body> </html> ~~~ >[danger] ##### 知识点get_字段_display ~~~ 这里有一个地方需要注意的是{{ student.get_status_display }},在Model中我们只定 义了status字段,并未定义这样的字段,为什么能通过这种方式取到数据呢。并且我们 在Admin中,也没有使用这样的字段。 原因就是,对于设置了choices的字段,Django会帮我们提供一个方法(注意,是方 法),用来获取这个字段对应的要展示的值。回头看下我们status的定义: ~~~ ~~~ ## 省略上下文代码 STATUS_ITEMS = [ (0, '申请'), (1, '通过'), (2, '拒绝'), ] status = models.IntegerField(choices=STATUS_ITEMS, verbose_name="审核状态") ## 省略上下文代码 ~~~ ~~~ 在admin中,展示带有choices属性的字段时,Django会自动帮我们调用 get_status_display方法,所以我们不用配置。而在我们自己写的模板中,我们需要自 己来写。并且在模板中不支持函数/方法调用,你只需要写方法名称即可,后面的括号 不需要写。Django会自行帮你调用(如果是方法的话)。 ~~~