Django - 确定传入模板标签的变量字段类型
我想写一个Django的模板标签,这个标签可以接收一个变量。
我希望这个模板标签的行为可以根据变量来源的模型字段类型(比如CharField、BooleanField、IntegerField等)以及字段定义中的其他信息(比如最大长度max_length等)来有所不同。
我可以很简单地把变量传递给这个模板标签,具体可以参考这个文档: 将模板变量传递给标签
有没有办法确定这个变量来源的模型字段的类名和模型参数呢?
换句话说:我能不能做一个这样的标签:
{% template_tag model.field %}
然后在标签的渲染函数中访问来自模型的信息呢?
field = models.CharField(max_length=40)
1 个回答
6
你可以使用Python的type
函数来判断一个对象的类型。
if type(field) == models.CharField:
#CharField specific code
elif type(field) == models.IntegerField:
#IntegerField specific code