gpt4 book ai didi

django - 将 Django 表单 Assets (媒体类)与清晰表单一起使用时,页面中不包含 .js 文件

转载 作者:行者123 更新时间:2023-12-01 05:16:47 24 4
gpt4 key购买 nike

我正在重现 Django 文档 (doc) 中关于如何使用自定义日历小部件自动包含 .js 或 .css 文件的基本示例:

class CalendarWidget(forms.TextInput):
class Media:

js = ('test.js',)

在简单表单的字段定义中使用该 CalenderWidget 时,不会在页面中注入(inject) test.js 文件。我正在使用 Crispy 表单在我的模板中呈现表单,所以我认为这应该是问题的根源......

现在,我必须在我的模板中添加自己的 {{ form.media }} 标记以强制将 test.js 文件添加到页面中,但我想找到一种方法让事情变得更“自动化”应该是...

非常感谢

最佳答案

我刚才遇到了同样的问题......并且找到了一两个解决方法。

从...开始:

class MyForm(Form):
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.helper = FormHelper(self)

然后:

1)您可以将 form.media 添加到您的输出中,但假设您的表单在您的上下文中称为表单..
        self.helper.layout.append(Layout(HTML("{{ form.media }}")))

2)您可以调用 self.media.render() - 我认为这更好:
        self.helper.layout.append(Layout(HTML(self.media.render())))

您也可以调用 insert() 而不是 append。

关于django - 将 Django 表单 Assets (媒体类)与清晰表单一起使用时,页面中不包含 .js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19543593/

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