如何在Django中轻松编写自定义模板标签?
在 Django 中编写模板标签并不容易,并且涉及大量样板代码。 最不痛苦的方法是什么?
- 有没有相关的库?
- 有没有不涉及第三方应用程序的技巧?
- 你的做法是什么?
(一旦我弄清楚如何做到这一点,我会将这篇文章作为社区维基。)
Writing template tags isn't easy in Django and involves lots of boilerplate code.
What is the least painful way to do it?
- Are there any libs for that?
- Are there any tricks that doesn't involve third-party apps?
- What is your way to do it?
(I will make this post a community wiki once I figure how to do it.)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试 django-classy-tags https://github.com/ojii/django-classy-tags
Try django-classy-tags https://github.com/ojii/django-classy-tags
有一些库:
django-templatetag-sugar
以前用过。让一切变得更简单,但我不知道如何用它处理大量可选参数。
使用示例::
django-tagcon,被原始废弃作者
这两个看起来很有前途,因为基于类的方法和关键字参数支持(例如
{% output limit=some_limit|default:1 offset=profile.offset %}
)使用示例::
There are some libs for that:
django-templatetag-sugar
Used it before. Makes everythings simpler, but I couldn't figure how to handle lots of optional arguments with it.
Usage example::
django-tagcon, abandoned by original author
django-ttag, fork of django-tagcon
These two look promising because of class-based approach and keyword arguments support (like
{% output limit=some_limit|default:1 offset=profile.offset %}
)Example usage::
我使用 fancy_tag 装饰器: http://pypi.python.org/pypi/fancy_tag
非常简单功能强大,并且附带良好的文档。
当您只想将模板标记的输出分配给上下文变量时,可以摆脱所有样板文件。还处理(可变长度)参数和关键字参数。
比 django-templatetag-sugar 更容易使用。
除了内置的包含标签装饰器之外,我真的不需要任何其他东西。
I use the fancy_tag decorator: http://pypi.python.org/pypi/fancy_tag
Very simple and powerful and it comes with good documentation.
Gets rid of all that boilerplate when you just want to assign the output of a template tag to a context variable. Also handles (variable length) arguments and keyword arguments.
Much easier to use than for example django-templatetag-sugar.
I haven't really needed anything else apart from the built in inclusion tag decorator.