gpt4 book ai didi

django - 统一 Django 表单媒体

转载 作者:行者123 更新时间:2023-12-03 18:04:07 24 4
gpt4 key购买 nike

我有几个 Django 模板,其中一些具有不同的形式。一些表单使用需要自己的 JS 和 CSS 资源的自定义小部件。这些资源在每个 form.media 中都正确指定

我发现放置所有媒体引用的正确位置是我的 <head>标签,就在我自己的上方css文件。如果我愿意,这将允许我覆盖自定义小部件的外观。所以在我的模板中我有类似的东西:

{% block form_media %}
{{ form1.media }}
{{ form2.media }}
{% endblock %}

(有些模板有不止一种形式)

现在,如果两个表单都使用相同的小部件,那么相同的 JS 和 CSS 文件将被引用两次。这可不好。有没有合理的方法来统一所有媒体引用?

这只是乞求自定义 {% context_form_media %}标签,它将呈现请求上下文中所有表单的媒体。

最佳答案

您可以使用 block 和继承来做到这一点。

base.html:

<head>
{% block form_css %}
{# base css #}
{% endblock form_css %}
{# rest of head #}
</head>
{# rest of html #}

任何form.html:
{% extends "base.html" %}
{% block form_css %}
{# your form css #}
{% endblock form_css %}
{# your form #}

这样你就可以只注入(inject)适用于该页面的 css/js。如果您还想包含该 block 的所有上游内容,您可以使用 {{ block.super }} 开始它。

关于django - 统一 Django 表单媒体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16156705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com