如何从django模板访问models.py中的常量



我有大约10个常量要在我的网站上显示。这些常数在models.py.中指定

如何在Django模板中使用这些常量?

我使用的是基于类的视图。

class PanelView(RequireBuyerOrSellerMixin, TemplateView):
    template_name = "core/panel.html"

您应该在view.py中导入它们,然后在您的view函数中,在上下文中传递它们以提供模板。

型号.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 }}

编辑:

基于类的视图与基于函数的视图没有区别。根据django-docs,重写get_context_data以向上下文添加额外的内容。

通常你应该按照@Shang Wang建议的方式进行,但如果你想在许多模板中使用常量,那么写一个自定义模板标签可能是值得的

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' %}

最新更新