Как обернуть FormWizard в представление? - PullRequest
3 голосов
/ 17 августа 2010

Как мне обернуть Django Form Wizard в представление?Мне нужно сделать это, чтобы я мог получить доступ к request.

У кого-нибудь есть пример кода для этого?

Ответы [ 3 ]

5 голосов
/ 15 октября 2010

Я, наверное, просто комментирую ответ Маноя, но, похоже, вам нужен код

urls.py

from django.conf.urls.defaults import *
from MyApp import views

urlpatterns = patterns(
  '',
  (r'^wizard/$', views.MyWizardView ),
)

views.py

@login_required    
def MyWizardView (request):
  cw = MyWizard([WizardName, WizardQuestions, WizardProvider, WizardGoomber])
  return cw(request)
2 голосов
/ 29 января 2013

Функция as_view преобразует представление на основе классов в вызываемое представление:

from django import forms
from django.contrib.formtools.wizard.views import SessionWizardView

class Form1(forms.Form):
    a = forms.CharField()

class Form2(forms.Form):
    b = forms.CharField()

class MyWizard(SessionWizardView):
    pass

wizard_view = MyWizard.as_view([Form1, Form2])

def view(request):
    # do something fancy with the request object here
    return wizard_view(request)

Это в основном тот же ответ, что и в Как обернуть мастера форм Django в представление?

0 голосов
/ 17 августа 2010

Этот Фрагмент Django может оказаться полезным.

Из заголовка: " Вид изнутри FormWizard с правильной обработкой контекста и поддержкой шаблонов сайтов, без необходимости использовать urls.py "

...