我想实现一个名为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" %}
。我打算只在我的一个视图中使用这个模板标记。我的这个视图可以访问像这样^/myview/(?P<workspace>[a-z0-9]{,16})/$
的URL。正如你所看到它有一个名为workspace的slug,当我查询我的模型以获得real_word
时,我需要使用这个slug。我会像这样查询模型:Terminology.objects.get(workspace=<workspace_from_slug>, fake_word=<fake_word_from_tag>)
。
我可以访问fake_word
,但我需要从slug中获取workspace
。我该如何实现呢?我可以弄清楚模板标签代码本身,这是困扰我的概念和实现。
我猜这是一种更好的方法,而不是每次都将请求传递给template-tag。如何使用@decorator_from_middleware(MyMiddleware)
?
感谢。
编辑:添加详细信息以获取详细程度。
我的这个视图将呈现一个模板。此模板可以包含我的模板标记的使用,例如{% getreal "Hello" %}
,{% getreal "Color" %}
等。目标是使用{`Terminology
模型为每个单词找到替换单词{1}}作为上下文。术语模型可以有这样的记录:
workspace
如果有人要访问workspace fake_word real_word
--------- --------- ---------
workspace1 Hello Greeting
workspace2 Hello Expression
且模板包含/myview/workspace1
,则该模板标记的输出将为{% getreal "Hello" %}