Я работаю с новым инструментом Django Form Wizard.Он будет выпущен в следующем Django 1.4, но вы можете найти его здесь: https://github.com/stephrdev/django-formwizard
Я хотел бы иметь класс синглтонного представления для всего процесса мастера.
Это мойcode:
class submit(object):
instance = None
def __new__(cls, request, *args, **kwargs):
if not cls.instance:
cls.instance = super(submit, cls).__new__(cls)
cls.form = SubmitStoryWizard.as_view([SubmitStoryForm1, SubmitStoryForm2, SubmitStoryForm3, SubmitStoryForm4])
return cls.instance(request, *args, **kwargs)
def __init__(self):
pass
def __call__(self, request, *args, **kwargs):
return self.form(request)
Проблема в том, что WizardView наследуется от TemplateView, поэтому метод as_view
возвращает функцию.Итак, в строке:
cls.form = SubmitStoryWizard.as_view([SubmitStoryForm1, SubmitStoryForm2, SubmitStoryForm3, SubmitStoryForm4])
Как будто я хранил в переменной класса функцию.Итак, в методе __call__
, когда я вызываю функцию self.form, Python автоматически добавляет в качестве первого параметра ссылку на класс. Это то, чего я не хочу.
Как я могу решить это?Есть идеи?
Извините за мой английский: S
Заранее спасибо,
Привет!