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'
这是您已经拥有的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)