2010-08-17 4 views

Répondre

0

Cette Django snippet peut s'avérer utile.

Du titre: « FormWizard vue intérieure avec contexte de manipulation et de soutien du site templating, sans avoir à utiliser urls.py »

+0

Eh bien, im perdu avec « sans avoir à utiliser urls.py » – Asinox

+0

Ce snipped est très vieux. Le code de l'assistant a beaucoup changé depuis. Merci de ne pas recommander d'anciens exemples de code à moins que la question ne demande spécifiquement une version datée de Django. – bikeshedder

5

Je devrais probablement commenterai seulement sur la réponse de Manoj, mais sons dont vous avez besoin du code

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) 
+0

J'ai dû changer ce qui précède pour que ça marche. J'ai changé cw = ... en cw = MyWizard.as_view ([...]). Sinon ça a bien fonctionné – MikeHoss

2

La fonction as_view convertit une vue en fonction de la classe en vue appelable:

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) 

C'est basiquement la même réponse que dans How to wrap a Django Form Wizard in a View?

+0

Cette question est TRES VIEILLE. Je viens de suivre un lien et j'ai vu que c'était presque la même question sans réponse. Je n'avais pas l'intention d'effectuer une dissection de cadavre. – bikeshedder

+0

En laissant la réponse ici, cela pourrait aider l'un ou l'autre à trouver la bonne réponse pour une nouvelle version de Django. – bikeshedder

Questions connexes