Content creation wizardsΒΆ

Content creation wizards allow you to make use of the toolbar’s Create button in your own applications. It opens up a simple dialog box with the basic fields required to create a new item.

django CMS uses it for creating Pages, but you can add your own models to it.

In the polls_cms_integration application, add a file, containing:

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

from polls_cms_integration.forms import PollWizardForm
from polls.models import Poll

class PollWizard(Wizard):

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


A wizard needs a form, so create a too:

from django import forms

from polls.models import Poll

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

Refresh the Polls page, hit the Create button in the toolbar - and the wizard dialog will open, offering you a new wizard for creating Polls.


Once again, this particular example is for illustration only. In the case of a Poll, with its multiple Questions associated with it via foreign keys, we really want to be able to edit those questions at the same time too.

That would require a much more sophisticated form and processing than is possible within the scope of this tutorial.