2010-02-07 66 views
2

我想編寫一個Django模板標籤,我可以傳遞一個變量。Django - 確定傳遞給模板標籤的變量的字段類型

我希望模板標籤的行爲有所不同,取決於變量派生自何種類型的模型字段(CharField,BooleanField,IntegerField等)以及字段定義中使用的其他信息(max_length等)。 )

我可以很容易地傳遞變量的模板標籤,本文檔以下內容: Passing template variables to the tag

有沒有一種方法來確定變量的起源模型場的類名和模型參數?

換句話說:我可以做這樣的標籤:

{% template_tag model.field %} 

,並在標籤渲染功能訪問信息從模型中來嗎?

field = models.CharField(max_length=40) 

回答

5

您可以使用python的type函數來確定類的類型。

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

4年後,但你確定這個......至少我是如何得到領域,類型的東西是一個models.CharField是unicode – Foon 2014-07-08 21:14:24

相關問題