我正在建立一个Django网站,并且在各个地方我想显示一个小问号,如果用户将鼠标悬停在它上面,它应该显示一条消息。我认为最好的方法是将工具提示存储在数据库中,如下所示:
class Tooltip(models.Model):
key = models.Charfield(max_length=20)
message = models.Charfield(max_length=300)
我的问题是在模板中获取工具提示的最佳方法是什么?到目前为止,我的想法是创建一个自定义模板标签,它将执行查找并返回结果,但我还没有使用模板标签,并且想知道这种方法是否存在问题?
{% tooltip 'message_key' %}
答案 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
字段。