Django - определяет тип поля переменной, передаваемой в тег шаблона - PullRequest
2 голосов
/ 07 февраля 2010

Я хотел бы написать тег шаблона Django, в который я могу передать переменную.

Я бы хотел, чтобы тег шаблона вел себя по-разному в зависимости от типа поля модели, из которого была получена переменная (CharField, BooleanField, IntegerField и т. Д.), А также другой информации, используемой в определении поля (max_length и т. Д.)

Я могу легко передать переменную в тег шаблона, следуя этой документации: Передача переменных шаблона в тег

Есть ли способ определить имя класса и параметры модели исходного поля модели переменной?

Другими словами: могу ли я сделать тег, подобный этому:

{% template_tag model.field %}

а в теге рендеринга функция доступа к информации, поступающей из модели?

field = models.CharField(max_length=40)

1 Ответ

5 голосов
/ 07 февраля 2010

Вы можете использовать функцию Python type для определения типа класса.

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