Django-fr

Forum

#1 24-03-2016 16:37:06

chlock62
Membre
Inscription : 22-01-2016
Messages : 5

formulaire different envoyé en view

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"

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"

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

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


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

Hors ligne

Pied de page des forums