如何使用django在html文件中为代码编写标签?

时间:2018-06-03 14:56:37

标签: django django-models django-templates

在Django 2.2手册第86页中,有以下代码:

from django.db import models

class Person(models.Model):
    SHIRT_SIZES = (
            ('S', 'Small'),
            ('M', 'Medium'),
            ('L', 'Large'),
                       )
    name = models.CharField(max_length=60)
    shirt_size = models.CharField(max_length=1, choices=SHIRT_SIZES)

然后它解释说我得到了类似于' L'通过使用p.shirt_size和' Large'使用p.get_shirt_size_display()。

但我可以在HTML文件中获得吗?我得到了' L'使用{{p.shirt_size}},但如果我想在HTML文件中打印实际描述,我该怎么做? {{p.get_shirt_size_display()}}不起作用,是吗?哪种方法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

你很亲密。如果字段具有choices=...参数,则可以使用get_fieldname_display()函数获取该选项的相应显示。

Django的模板语言调用callables automatically,因此您应该使用:

{{ p.get_shirt_size_display }}

省略括号。

与文档指定的一样,此类“变量”为resolved in Django templates like

  

幕后花絮

     

从技术上讲,当模板系统遇到一个点时,它会尝试   按照以下顺序查找:

     
      
  1. 字典查找
  2.   
  3. 属性或方法查找
  4.   
  5. 数字索引查找
  6.         

    如果结果值是可调用的,则调用它时不带参数。调用的结果成为模板值。