django - 如何在 Django 中将小部件添加到 UpdateView
问题描述
我需要将此小部件添加到 django UpdateView,
class tlistUpdate(LoginRequiredMixin,UpdateView):
fields = ('title', 'thumbnail', 'content', 'tags')
model = htmlpage
template_name = 'blog/create_form.html'
尝试添加
widgets = {
'content': SummernoteWidget(),
}
和
content = forms.CharField(widget=SummernoteWidget())
但它没有用。
解决方案
UpdateView
不是为处理高级表单构造而构造的。这个想法是,fields
如果您打算构建一个简单的(standard) ,则可以使用Form
。
您可以简单地构造 a并在/ModelForm
中使用该表单:CreateView
UpdateView
# app/forms.py
from django import forms
class HtmlPageForm(forms.ModelForm):
class Meta:
model = HtmlPage
fields = ('title', 'thumbnail', 'content', 'tags')
widgets = {
'content': SummernoteWidget
}
然后,您views.py
可以通过设置form_class
属性 [Django-doc]来使用表单:
# app/views.py
from app.forms import HtmlPageForm
class TlistUpdate(LoginRequiredMixin,UpdateView):
model = htmlpage
form_class = HtmlPageForm
template_name = 'blog/create_form.html'
注意:通常是 Django 模型,就像 Python 中的所有类都在PerlCase中命名,而不是snake_case,所以它应该是:
HtmlPage
而不是.htmlpage
推荐阅读
- memory - 使用 PAE 在 x86 中转换虚拟内存
- python - 现有对象 Django 上的 OneToMany
- marklogic - MarkLogic - JSON 到 XML 的转换 - 处理多个属性
- python-3.x - 如何在 Python 3.6 中使用 LXML find() 用变量替换谓词值
- maven - maven wagon 可以同时作为插件吗
- javascript - 如何在客户端从服务器获取数据期间创建屏幕保护程序?
- java - JVM 是否会在分布式/并行处理中产生大量开销?
- javascript - 如何更改 ng-zorro 中进度圈的笔触颜色?
- android - 我如何在一个活动中使用多个 XML 布局而不必创建这么多活动
- azure - 具有对象 id 的客户端无权执行操作 taggedTrafficConsumers/validate