如何在 Django 中将小部件添加到 UpdateView
Posted
技术标签:
【中文标题】如何在 Django 中将小部件添加到 UpdateView【英文标题】:How to add Widgets to UpdateView in Django 【发布时间】:2020-06-20 00:26:09 【问题描述】:我需要将此小部件添加到 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())
但它没有用。
【问题讨论】:
只需使用表格即可。 【参考方案1】:UpdateView
不是为处理高级表单构造而构造的。这个想法是,如果您打算构建一个简单(标准)Form
,则使用fields
。
您可以简单地构造一个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
attribute [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
【讨论】:
以上是关于如何在 Django 中将小部件添加到 UpdateView的主要内容,如果未能解决你的问题,请参考以下文章