Django - 确定传递给模板标记的变量的字段类型

时间:2010-02-07 01:13:45

标签: python django variables field templatetags

我想写一个Django模板标签,我可以传递一个变量。

我希望模板标签的行为不同,具体取决于变量派生的模型字段的类型(CharField,BooleanField,IntegerField等)以及字段定义中使用的其他信息(max_length等)

我可以轻松地将变量传递给模板标记,遵循以下文档: Passing template variables to the tag

有没有办法确定变量的原始模型字段的类名和模型参数?

换句话说:我可以制作这样的标签:

{% template_tag model.field %}

并在标签呈现功能中访问来自模型的信息?

field = models.CharField(max_length=40)

1 个答案:

答案 0 :(得分:5)

您可以使用python的type函数来确定类类型。

if type(field) == models.CharField:
  #CharField specific code
elif type(field) == models.IntegerField:
  #IntegerField specific code