Если вам нужно значение, которое состоит исключительно из комбинации значений полей модели, продиктованных бизнес-логикой, тег шаблона не является правильным путем.
Вместо этого это должно быть свойство модели:
class Student(models.Model):
firstname = models.CharField(...)
lastname = models.CharField(...)
@property
def student_id(self):
return '{}{}'.format(self.id, self.lastname)
Вы можете использовать это свойство везде, не только в своих шаблонах, но и в представлениях, экспорте, пользовательском интерфейсе администратора и т. Д. Что вам, вероятно, нужно увидеть, чтобы student_id
звучало как довольно важный атрибут.
В шаблоне:
{% if student %}
# to display
# John says hello
{{ student.firstname }} says hello
# John's student id
Student ID: {{ student.student_id }}
{% endif %}
Шаблонные теги должны создаваться для более общей функциональности и функциональности, которые зависят от текущего запроса, а не от того, что вы когда-либо примените только к одной конкретной модели в определенном контексте. И, самое главное, они не предназначены для функциональности, которая не ограничивается шаблонами.