Comment placer un Django Form Wizard dans une vue? Je dois le faire pour que je puisse accéder à request
.Comment encapsuler un formulaire dans une vue?
Quelqu'un at-il un exemple de code pour cela?
Comment placer un Django Form Wizard dans une vue? Je dois le faire pour que je puisse accéder à request
.Comment encapsuler un formulaire dans une vue?
Quelqu'un at-il un exemple de code pour cela?
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 »
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)
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
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?
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
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
Eh bien, im perdu avec « sans avoir à utiliser urls.py » – Asinox
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