Vous n'êtes pas identifié(e).
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