Я думаю, что эти виджеты должны быть какими-то объектами, а не шаблонными тегами. Объекты, которые могут сделать их самостоятельно. Затем вы можете просто сохранить эти объекты в списке и отобразить их в цикле.
В связи с этим вы бы инициализировали эти объекты, передав request
или другие обязательные аргументы. Объект виджета реализует метод __unicode__
, который будет его отображать. Затем в шаблоне вы должны сделать это: {{ widget }}
.
widgets.append( Widget(request) )
--
{% for widget in widgets %}
{{ widget }}
{% endfor %}
Ваши виджеты могут быть даже моделями Django. Тогда вы можете сохранить настройки и связать их с пользователями.
Возможно, вы захотите проверить, как fein-cms, django-cms реализуют заполнители содержимого. Любой вид объектов содержимого может быть связан с заполнителем. Объект содержимого может отображаться самостоятельно, а заполнитель просто отображает их коллекцию.