Django - 在模板

时间:2016-06-03 14:48:28

标签: django django-templates

我正在建立一个Django网站,并且在各个地方我想显示一个小问号,如果用户将鼠标悬停在它上面,它应该显示一条消息。我认为最好的方法是将工具提示存储在数据库中,如下所示:

class Tooltip(models.Model):
    key = models.Charfield(max_length=20)
    message = models.Charfield(max_length=300)

我的问题是在模板中获取工具提示的最佳方法是什么?到目前为止,我的想法是创建一个自定义模板标签,它将执行查找并返回结果,但我还没有使用模板标签,并且想知道这种方法是否存在问题?

{% tooltip 'message_key' %}

1 个答案:

答案 0 :(得分:1)

Django文档explains how to create template tags

可以这么简单:

from django import template

register = template.Library()

@register.simple_tag
def tooltip(key):
    try:
        tooltip = Tooltip.objects.get(key=key)
        return tooltip.message
    except Tooltip.DoesNotExist:
        return ''  # or return a message stating that the key does not exist.

您需要将此文件与templatetags/一起保存在应用的__init__.py目录中。然后,您可以在模板中{% load "<appname>" %}使用您建议的标记。

虽然您可能不需要数据库来存储这些数据,但如果您这样做,至少需要add an index到模型上的key字段。