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"
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 voici ma class "MyAuthView"

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 "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
 
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')
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
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')
Merci les amis