URL-зависимый тег-шаблон - PullRequest
0 голосов
/ 03 ноября 2011

Я хотел бы реализовать пользовательский тег шаблона с именем getreal.То, что это сделало бы, должно было бы получить значения от Модели.Эта модель выглядит так:

class Terminology(models.Model):
    workspace = models.CharField(max_length=16)
    fake_word = models.CharField(max_length=200)
    real_word = models.CharField(max_length=200)

Вот как это будет использоваться: {% getreal "Hello" %}.Я намерен использовать этот шаблон-тег только в одном из моих просмотров.К этому моему мнению можно обратиться по URL-адресу, подобному ^/myview/(?P<workspace>[a-z0-9]{,16})/$.Как вы можете видеть, у него есть слаг, называемый рабочей областью, и когда я запрашиваю мою модель, чтобы получить real_word, мне нужно использовать этот слаг.Я бы запросил модель так: Terminology.objects.get(workspace=<workspace_from_slug>, fake_word=<fake_word_from_tag>).

У меня есть доступ к fake_word, но мне нужно получить workspace из пули.Как мне это реализовать?Я могу понять сам код шаблона-тега, меня смущают концепция и реализация.

Я предполагаю, что есть лучший способ сделать это, чем каждый раз передавать запрос тегу-шаблона.,Как насчет промежуточного программного обеспечения для конкретного вида с использованием @decorator_from_middleware(MyMiddleware)?

Спасибо.


РЕДАКТИРОВАТЬ: Добавление подробностей для многословия.

Это мое представление будет отображать шаблон.Этот шаблон может содержать использование моего шаблона-тега, например: {% getreal "Hello" %}, {% getreal "Color" %} и т. Д. Цель состоит в том, чтобы найти заменяющее слово для каждого из этих слов из модели `Terminology, используя workspace в качестве контекста.Модель терминологии может иметь такие записи:

workspace    fake_word      real_word
---------    ---------      ---------
workspace1   Hello          Greeting
workspace2   Hello          Expression

Если кто-то посетит /myview/workspace1, а шаблон содержит {% getreal "Hello" %}, вывод этого тега шаблона будет Greeting

...