首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django政府的看法是什么?

Django政府的看法是什么?
EN

Stack Overflow用户
提问于 2015-08-19 20:09:17
回答 1查看 61关注 0票数 0

我正在尝试修改最初的Django管理模板。我成功地添加了自定义内容。但是,只有当数据库中的表为空时,才需要显示此内容。因此,我想通过视图将一些内容传递给模板,但找不到它。

具体来说,我的扩展管理模板如下所示:

代码语言:javascript
复制
{% overextends "admin/index.html" %}
{% load i18n admin_urls %}

{% block content  %}
     {{ block.super }}

     {% if is_empty %}
         <a href="#">This hyperlink appears only when the table is empty</a>
     {% endif %}

{% endblock %}

我希望将模板传递给变量is_empty (真或假),这取决于表是否为空。

有什么办法吗?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-20 08:40:21

创建一个计算模板上下文处理器值的is_empty

代码语言:javascript
复制
# in my_app/context_processors.py
from my_app.models import MyTable

def is_empty(request):
    """Returns a bool depending on whether MyTable is empty"""
    return {'is_empty': not MyTable.objects.exists()} 

将上下文处理器添加到模板设置中(请注意,对于Django <1.8,此步骤略有不同)。

代码语言:javascript
复制
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        ...
        'OPTIONS': {
            'context_processors': [
                ...
                'my_app.context_processors.is_empty',
            ],
        },
    },
]

然后,可以将{{ is_empty }}包含在与请求上下文一起呈现的任何模板中。这包括管理视图、基于泛型类的视图和使用render快捷方式的视图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32104735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档