• en
  • Language: ru
  • 3.7.x
  • Documentation version: 3.9

8. Мастера создания контента

Мастера создания контента позволяют использовать кнопку Создать панели инструментов в собственных приложениях. Она открывает простое диалоговое окно с основными полями, необходимыми для создания нового элемента.

django CMS использует его для создания Pages, но вы можете добавить к нему свои собственные модели.

В приложении polls_cms_integration добавьте файл forms.py:

from django import forms

from polls.models import Poll


class PollWizardForm(forms.ModelForm):
    class Meta:
        model = Poll
        exclude = []

Затем добавьте файл cms_wizards.py, содержащий:

from cms.wizards.wizard_base import Wizard
from cms.wizards.wizard_pool import wizard_pool

from polls_cms_integration.forms import PollWizardForm


class PollWizard(Wizard):
    pass

poll_wizard = PollWizard(
    title="Poll",
    weight=200,  # determines the ordering of wizards in the Create dialog
    form=PollWizardForm,
    description="Create a new Poll",
)

wizard_pool.register(poll_wizard)

Обновите страницу Опросы, нажмите кнопку Создать на панели инструментов - и откроется диалог мастера, предлагающий вам новый мастер для создания опросов.

Примечание

И снова, этот конкретный пример приведен только для иллюстрации. В случае опроса с несколькими вопросами, связанными с ним с помощью внешних ключей, мы действительно хотим иметь возможность редактировать эти вопросы одновременно.

Для этого потребуется гораздо более сложная форма и обработка, чем это возможно в рамках данного учебника.