I ont le contrôleur suivant:Comment valider le formulaire dans pylons dans la même action de contrôleur qui l'a initialement rendu?
class FormtestController(BaseController):
def form(self):
return ender('/simpleform.html')
@validate(schema=EmailForm(state=c), form='form', post_only=False, on_get=True,
auto_error_formatter=custom_formatter)
def submit(self):
return 'Your email is: %s and the date selected was %r.' % (
self.form_result['email'],
self.form_result['date'],
)
La première action est de la forme initiale de rendu et le second est lorsque le formulaire est soumis. Est-il possible de les fusionner et simplement utiliser un if request.POST == 'POST' pour vérifier si le formulaire a été soumis?
Je l'ai essayé et déplacer le décorateur @validate à l'action de la forme, mais il me donne un WSOD et le serveur cesse de service:
class FormtestController(BaseController):
@validate(schema=EmailForm(state=c), form='form', post_only=False, on_get=True,
auto_error_formatter=custom_formatter)
def form(self):
if request.method == 'POST':
return 'Your email is: %s and the date selected was %r.' % (
self.form_result['email'],
self.form_result['date'],
)
return render('/simpleform.html')
Est-il possible d'avoir une seule action et toujours utiliser la validate décorateur?