kawaz.apps.attachments.templatetags.attachments のソースコード

# ! -*- coding: utf-8 -*-
#
#
#


from django import template
from django.utils.safestring import mark_safe
from ..models import Material
import re

register = template.Library()

COMMONS_PATTERN = re.compile(r"\{attachments:\W*(?P<slug>[^}:]+)\W*\}", re.MULTILINE)

@register.filter
@template.defaultfilters.stringfilter
[ドキュメント]def parse_attachments(value): """ {attachments:47c833254e45532d850cc40a0b8ec8b055b27c71}的なタグをparseします Usage {{ <value>|parse_attachments }} """ def repl(m): try: material = Material.objects.get(slug=m.group('slug')) preview_html = material.get_thumbnail_display() return preview_html except Material.DoesNotExist: return m.group(0) value = re.sub(COMMONS_PATTERN, repl, value) return mark_safe(value)