J'ai une vue FormView, avec un contexte GET supplémentaire fourni à l'aide de get_context_data ():
class SignUpView(FormView):
template_name = 'pages_fixed/accounts/signup.html'
form_class = SignUpForm
def get_context_data(self, **kwargs):
context = super(SignUpView, self).get_context_data(**kwargs)
context = {
'plans': common.plans,
'pricing': common.pricing,
}
return context
Cela fonctionne bien. Cependant, j'ai également quelques valeurs en session (pas à partir d'un modèle lié) que je voudrais pré-remplir dans le formulaire. Ceux-ci varient en fonction des actions de l'utilisateur sur les pages précédentes. Je sais (de mon autre post ) que je peux passer le formulaire dans le contexte (avec initial=
) mais est-il possible dans une situation FormView ci-dessus?
Vous pouvez remplacer la méthode "get_initial" de la classe FormView. Voir ici pour plus d'informations,
par exemple.
def get_initial(self):
"""
Returns the initial data to use for forms on this view.
"""
initial = super(SignUpView, self).get_initial()
initial['my_form_field1'] = self.request.something
return initial
'get_initial' devrait retourner un dictionnaire où les clés sont les noms des champs du formulaire et les valeurs sont les valeurs initiales à utiliser lors de la présentation du formulaire à l'utilisateur.