python - 如何将属性添加到 Django 表单小部件的媒体字段?

标签 python django django-forms

我可以渲染 media files对于 Django 表单,通过自定义小部件,如下所示:

class TinyMCEWidget(Textarea):
    def __init__(self, attrs=None):
        if attrs is None:
            attrs = {}
        attrs.update({
            'class':'listing-template',
        })
        super().__init__(attrs)

    class Media:
        js = ('https://cdn.tiny.cloud/1/my_api_key/tinymce/5/tinymce.min.js/',)

但我需要将 referrerpolicy="origin" 添加到脚本中。有没有一种方法可以 javascript hack 来完成?

How can I add attributes to a widget's media fields through the widget or form class?

This问题展示了如何向表单小部件添加任意数量的属性,但没有展示如何向小部件的媒体字段添加属性,因此我的问题不是重复。

最佳答案

您可以使用 django-js-asset 中的 JS 类

from js_asset import JS


class TinyMCEWidget(Textarea):
    def __init__(self, attrs=None):
        if attrs is None:
            attrs = {}
        attrs.update(
            {
                "class": "listing-template",
            }
        )
        super().__init__(attrs)

    class Media:
        js = (
            JS(
                "https://cdn.tiny.cloud/1/my_api_key/tinymce/5/tinymce.min.js/",
                {
                    "referrerpolicy": "origin",
                },
                static=False,
            ),
        )

关于python - 如何将属性添加到 Django 表单小部件的媒体字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58564155/

相关文章:

python - 使用 Access ODBC 创建包含 DECIMAL 列的表

python - Django ModelForm 和 Model 实例保存方法的区别

python - Django,使用 ManyToMany 将初始数据设置为 formset

python - 使用终端将时间戳输出到日志文件

python - 将文本绘制到图像时出现字体错误

python - 如何使用 python io 库写入外部文件

django - 错误 : [Errno 32] Broken pipe django

python - 在django中读取Ajax post数据

ViewSet 操作中的 Django REST Framework 架构参数列表

python - Django Haystack 自定义搜索表单