Bonjour, je voudrais pouvoir envoyer un formulatre différent a une vue de telle sorte que les differents champ ne soit pas au complet selon le formulaire envoyé.
Car de plus une fois le formulaire soumit la redirection est differente
Voici mon fichier url ou je precise en utilisant la fonction "as_view"
Et voici ma class "MyAuthView"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 from myauth.forms import MyRegistrationForm1 from myauth.forms import MyRegistrationForm2 urlpatterns = [ url(r'^creationbyformationregistered/$', MyAuthView.as_view(form = MyRegistrationForm1),name='create_user'), url(r'^creationbyformationregistered/$', MyAuthView.as_view(form = MyRegistrationForm2),name='create_user'),
et mon formulaire "MyRegistrationForm1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 class MyAuthView(View): form = '' def create_user(self,request): if request.method == 'POST': form = RegistrationForm(request.POST) if form.is_valid(): user = form.save() salt = hashlib.sha1(str(random.random())).hexdigest()[:5] email = user.email if isinstance(email, unicode): email = email.encode('utf-8') user.activation_key = hashlib.sha1(salt + email).hexdigest() user.send_activation_email() user.save() return render(request, 'myauth/created_user.html', {}) else: return render(request, 'myauth/create_user.html', {"form": form}) else: print('ff') form=self.form return render(request, 'myauth/create_user.html', {"form": form})
et mon formulaire "MyRegistrationForm2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class MyRegistrationForm(): """ Form for registering a new account. """ email = forms.EmailField(widget=forms.TextInput(attrs={'placeholder': 'Email'}), label="Email") nom = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Nom'}), label="Nom") prenom = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Prénom'}), label="Prénom") class Meta: model = MyUser fields = ('nom', 'prenom', 'email')
Merci les amis
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class MyRegistrationForm(): """ Form for registering a new account. """ email = forms.EmailField(widget=forms.TextInput(attrs={'placeholder': 'Email'}), label="Email") nom = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Nom'}), label="Nom") password1 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Mot de passe'}), label="Mot de passe") password2 = forms.CharField(widget=forms.PasswordInput(attrs={'placeholder': 'Retapez votre mot de passe'}), label="Retapez votre mot de passe") class Meta: model = MyUser fields = ('nom', 'prenom', 'password1', 'password2', 'email')
Partager