Я хотел бы реализовать пользовательский тег шаблона с именем 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