Наследование шаблонов в Django может быть именно тем, что вы хотите, с точки зрения того, чтобы не повторять включения и другие шаблоны.Если под «передачей данных» вы подразумеваете в контексте рендеринга, например, есть какие-то данные, которые вы всегда хотите поместить туда, проще всего сделать все ваши контексты рендеринга с помощью фабричной функции, которая заполняет общие части данных.
Редактировать : для заводской функции я не имею в виду ничего особенного, просто например, простой класс:
class ContextFactory(object):
def __init__(self, **pervasive):
self.pervasive = pervasive
def makeContext(self, current):
return dict(self.pervasive, **current)
def registerPervasive(self, name, value):
self.pervasive[name] = value
(и т. Д., Если вам нужно больше функциональности там), а затем создать экземпляродин экземпляр contextFactory в вашем соответствующем модуле.Там, где ваши представления в настоящее время могут отображаться с помощью контекстных диктов, таких как {'foo': bar}
, вы вместо этого будете использовать contextFactory.makeContext({'foo': bar})
, чтобы дать фабрике контекста шанс ввести любые пары имя / значение, которые в данный момент зарегистрированы в ней - и все, правда.