Очень простой и, наверняка, не слишком правильный способ вставлять html-хуки в шаблоны, содержимым которых может управлять пользователь:
# models.py:
class Snippet(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(u'название', max_length=50)
text = models.TextField(u'текст', max_length=5000)
template = models.CharField(u'шаблон', max_length=250, blank=True, null=True)
def __unicode__(self): return u'%s (%s)'%(self.title, self.template)
class Meta:
verbose_name = u'снипет'
verbose_name_plural = u'снипеты'
# tampletetags/realtor_tags.py:
@register.simple_tag
def get_snippet(title, **kwargs):
from realtor.models import Snippet
try:
return Snippet.objects.get(title=title).text
except:
return u''
get_snippet.is_safe = True
# в шаблонах:
{% load realtor_tags %}
{% get_snippet 'realtor-top-left' %}
2 комментария:
Для жтого есть portlet-ы (http://bitbucket.org/diefenbach/django-portlets/overview/) и chunk-и (http://bitbucket.org/hakanw/django-better-chunks/overview/). Если я правильно понял задачу, конечно.
Спасибо за наводку! Такие приложения я пока не видел. Посмотрю, отпишусь.
Отправить комментарий