如何使用Django将此if语句添加到模板并改善views.py

Everspader

我对html和Django的了解非常有限,但是我有这个Django项目,其中包含多个(12)HTML页面,这些页面在类似于以下代码的表中显示信息。如果有需要修复的内容,将有条件地显示该表。如果修复程序中的任何数据已经过测试,则应以红色突出显示以避免编辑。我最近添加了<tr {% if p.tested in green_tested %} bgcolor="red" {% endif %}>一点来进行突出显示,但是必须手动将其添加到所有12页中确实很愚蠢。有没有一种方法可以将其添加为外部模板的一部分?

{% extends "admin/base_site.html" %}
{% load static %}

{% block content %}

<p><b>Description:</b> {{ docstring }}</p>
{% if count|length %}
    <p><b>Action:</b> Investigate why and fix.</p>
    <p style="color:red">If any table rows are highlighted red, indicating a tested profile, flag immediately to health report owner/Automation before editing.</p>
    <table>
      <tr bgcolor="#ccc">
        <th>Profile</th>
        <th>Name</th>
        <th>Type</th>
        <th>Tested</th>
        <th>e.g. Device</th>
      </tr>
    {% for p in count %}
      <tr {% if p.tested in green_tested %} bgcolor="red" {% endif %}>
        <td><a href={{ p.profile_url }}>{{ p.url }}</a></td>
        <td>{{ p.name }}</td>
        <td>{{ p.type }}</td>
        <td>{{ p.tested }}</td>
        <td><a href={{ p.device_url }}>{{ p.dev_id }}</a></td>
    {% endfor %}
      </tr>
    </table>
{% else %}
No fixes left to make!
{% endif %}

{% endblock %}

我在views.py中的函数如下所示:

def test_function(request):
    count = test_function_count()
    context = {'count': count,
                'green_tested': list(map(lambda x: x[0], models.GREEN_TESTED)),
                'docstring': test_function_count.__doc__}
    return render(request, 'health_report/test-function-page.html', context)

不必'green_tested'在视图中的所有函数中添加,这也很好

格里贝克

对于green_tested每种视图中的问题,我建议使用上下文处理器。首先,您必须在view.py所在的位置创建一个新文件context_processors.py。像这样:

def function_name(request):
    data = # here put logic you want
    return {
        'context_data': data
    }

然后,您需要在TEMPLATES中的settings.py文件中注册上下文处理器。模式是:YourAppName.FileName.FunctionName这里的示例(我不替换,YourAppName因为我不知道):

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['YourAppName/templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',

                # Here is new line
                'YourAppName.context_processor.function_name',
            ],
        },
    },
]

然后,您可以在任何模板中使用{{ context_data }},函数返回的字典中键的名称。

对于主要问题,我只有一个建议。您可以创建某种父模板,例如“ base_site.html”。base_site.html和当前模板之间的内容。但是您要放置的行位于中间的某个位置,因此我不确定这是否对您有用,或者这些模板之间的相似之处。比将这条线放置12次要麻烦得多。

{% extends "admin/base_site.html" %}
{% load static %}

{% block content1 %}
{% endblock %}

 Here the code you want in each template.

{% block content2 %}
{% endblock %}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将验证错误消息添加到Django中的渲染模板(通过views.py)

来自分类Dev

如何将在models.py中创建的新类添加到admin.py(Django)

来自分类Dev

如何在 Django 的模板中使用 views.py 中的变量?

来自分类Dev

如何将使用参数的entry_point / console脚本添加到setup.py

来自分类Dev

django模板继承-多个子模板的views.py

来自分类Dev

django模板继承-多个子模板的views.py

来自分类Dev

Django模板:如何将显示对象的PK / ID从模板传递回Views.py文件?

来自分类Dev

Django views.py函数

来自分类Dev

如何将Django应用添加到settings.py app_name或app_name.apps.AppNameConfig?

来自分类Dev

如何停止Django“ python manage.py syndb”将表添加到“设置”中的多个数据库?

来自分类Dev

Django Queryset而不是for循环和views.py中的if语句

来自分类Dev

在Django模板中显示views.py中的url变量

来自分类Dev

Openshift django是否应将setup.py安装生成的文件添加到gitignore?

来自分类Dev

从 views.py 更新 Django Models.py 的属性

来自分类Dev

如何从views.py或其他模板中显示django-simple-history?

来自分类Dev

Discord.py将参数添加到api命令

来自分类Dev

将冷却时间添加到discord.py

来自分类Dev

Manage.py 添加到 PYTHONPATH,但是找不到

来自分类Dev

如何调用从views.py到task.py的函数?

来自分类Dev

无法使用views.py从urls.py捕获变量

来自分类Dev

如何导入通过--py-files添加到集群的python模块?

来自分类Dev

如何将PayPal智能付款按钮添加到我的forms.py

来自分类Dev

如何将apt依赖项添加到setup.py

来自分类Dev

如何从views.py获取值并在html模板中使用它?

来自分类Dev

如何从views.py获取值并在html模板中使用它?

来自分类Dev

django如何将验证错误从views.py传递给forms.py

来自分类Dev

Django - 如何将用户输入从views.py 传输到models.py?

来自分类Dev

如何使用Django在src中设置urls.py以与app / urls.py和模板一起使用

来自分类Dev

views.py中的Django参考网址

Related 相关文章

  1. 1

    将验证错误消息添加到Django中的渲染模板(通过views.py)

  2. 2

    如何将在models.py中创建的新类添加到admin.py(Django)

  3. 3

    如何在 Django 的模板中使用 views.py 中的变量?

  4. 4

    如何将使用参数的entry_point / console脚本添加到setup.py

  5. 5

    django模板继承-多个子模板的views.py

  6. 6

    django模板继承-多个子模板的views.py

  7. 7

    Django模板:如何将显示对象的PK / ID从模板传递回Views.py文件?

  8. 8

    Django views.py函数

  9. 9

    如何将Django应用添加到settings.py app_name或app_name.apps.AppNameConfig?

  10. 10

    如何停止Django“ python manage.py syndb”将表添加到“设置”中的多个数据库?

  11. 11

    Django Queryset而不是for循环和views.py中的if语句

  12. 12

    在Django模板中显示views.py中的url变量

  13. 13

    Openshift django是否应将setup.py安装生成的文件添加到gitignore?

  14. 14

    从 views.py 更新 Django Models.py 的属性

  15. 15

    如何从views.py或其他模板中显示django-simple-history?

  16. 16

    Discord.py将参数添加到api命令

  17. 17

    将冷却时间添加到discord.py

  18. 18

    Manage.py 添加到 PYTHONPATH,但是找不到

  19. 19

    如何调用从views.py到task.py的函数?

  20. 20

    无法使用views.py从urls.py捕获变量

  21. 21

    如何导入通过--py-files添加到集群的python模块?

  22. 22

    如何将PayPal智能付款按钮添加到我的forms.py

  23. 23

    如何将apt依赖项添加到setup.py

  24. 24

    如何从views.py获取值并在html模板中使用它?

  25. 25

    如何从views.py获取值并在html模板中使用它?

  26. 26

    django如何将验证错误从views.py传递给forms.py

  27. 27

    Django - 如何将用户输入从views.py 传输到models.py?

  28. 28

    如何使用Django在src中设置urls.py以与app / urls.py和模板一起使用

  29. 29

    views.py中的Django参考网址

热门标签

归档