Если вы на самом деле храните ссылки в текстовом поле, как, например, то, по сути, вы используете простой язык разметки для хранения ссылок.
В таком случае, я думаю, что шаблон будет местом для этого.
К сожалению, я не знаю ни одного способа создания фильтра и записи в контекстную переменную. Поэтому вместо использования фильтра вам придется использовать тег, например:
{% output_with_references article_content myreferencesvar %}
[snip]
<ul>
{% for ref in myreferencesvar %}
<li><a name="{{ ref.id }}">{{ ref.authors }}, {{ ref.year }}</a></li>
{% endif %}
</ul>
Кстати: если - это способ записи в контекст страницы при использовании фильтра, я бы хотел узнать об этом.
Обновление
Чтобы реализовать это, вы должны использовать что-то вроде:
from django.template import Library, Node, TemplateSyntaxError
register = Library()
class OutputWithReferencesNode(Node):
def __init__(self, input, ref_varnam='references'):
self.input = input
self.ref_varnam=ref_varnam
def render(self, context):
output = self.input
references = []
# process self.input
context[self.ref_varnam] = references
return output
@register.tag
def output_with_references(parser, token):
try:
fnctn, input, ref_varname = token.split_contents()
except ValueError:
raise TemplateSyntaxError, "%s takes the syntax %s text_to_output references_variable_name" % (fnctn,)
return OutputWithReferencesNode(input, ref_varname)