Django小部件覆盖模板

Django小部件覆盖模板,第1张

Django小部件覆盖模板

Django版本 <1.11:

小部件必须实现该

render
方法才能呈现不同的模板:

from django.utils.safestring import mark_safefrom django.template.loader import render_to_stringclass MultiChoiceFilterWidget(forms.widgets.CheckboxSelectMultiple):    template_name = 'project/widgets/filter.html'    def render(self, data):        ...        Do stuff with data        ...        return mark_safe(render_to_string(self.template_name))

Django 1.11版:

在渲染器的文档中,我们可以找到以下内容:

Django 1.11的新功能:

在旧版本中,小部件是使用Python渲染的。本文档中描述的所有API都是新的。

通过查看小部件的源代码,特别是

Input
小部件如何扩展
Widget
类,我们可以看到您只需要按以下方式自定义小部件:

class MultiChoiceFilterWidget(forms.widgets.CheckboxSelectMultiple):    template_name = 'project/widgets/filter.html'

这是您已经拥有的。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5644809.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存