Как добавить виджеты в UpdateView в Django - PullRequest
2 голосов
/ 07 марта 2020

Мне нужно добавить этот виджет в 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 Ответ

2 голосов
/ 07 марта 2020

UpdateView не предназначен для обработки сложных форм. Идея заключается в том, что вы используете fields, если хотите создать простой (стандартный) Form.

. Вы можете просто создать ModelForm и использовать эту форму в своем CreateView / UpdateView:

# app/forms.py

from django import forms

class HtmlPageForm(forms.ModelForm):
    class Meta:
        model = HtmlPage
        fields = ('title', 'thumbnail', 'content', 'tags')
        <b>widgets = {</b>
            'content': SummernoteWidget
        <b>}</b>

В вашем views.py вы можете использовать форму, установив атрибут form_class [Django -doc] :

# app/views.py

from app.forms import HtmlPageForm

class TlistUpdate(LoginRequiredMixin,UpdateView):
    model = htmlpage
    <b>form_class = HtmlPageForm</b>
    template_name = 'blog/create_form.html'

Примечание : обычно Django моделям, как и всем классам в Python, присваивается имя в PerlCase , а не snake_case , поэтому должно быть: HtmlPage вместо htmlpage.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...