我想在我的网站上显示大约10个常量。这些常量在models.py。
中指定如何在Django模板中使用这些常量?
我正在使用基于类的视图。
class PanelView(RequireBuyerOrSellerMixin, TemplateView):
template_name = "core/panel.html"
答案 0 :(得分:7)
您应该在view.py中导入它们,然后在您的视图功能中,在上下文中传递它们以提供模板。
models.py
CONSTANT1 = 1
CONSTANT2 = 2
view.py
from app.models import CONSTANCT1, CONSTANCE2
def func(request):
context['constant1'] = CONSTANT1
context['constant2'] = CONSTANT2
# return HttpResponse()
template.html
{{ constant1 }}
{{ constant2 }}
修改强>
基于类的视图与基于函数的视图没有区别。根据{{3}},覆盖get_context_data
以向上下文添加额外内容。
答案 1 :(得分:2)
通常你应该采用@Shang Wang建议的方式,但是如果你想在许多模板中使用常量,那么写一个custom template tag
可能是值得的。from django import template
from app import models
register = template.Library()
@register.simple_tag
def get_constants(name):
return getattr(models, name, None)
在你的模板中:
{% get_constants 'CONSTANT1' %}