Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Django] Changer la valeur d'un champ pour édition

version 1.4.2

Sujet résolu
20 novembre 2012 à 7:52:17

Bonjour,

J'ai crée un formulaire dans le but d'éditer le profil d'un utilisateur.

Mon but est que lorsque l'utilisateur apparait sur sa page de profil, qu'il puisse voir son adresse mail dans le champ du formulaire.

Pour cela, il faut que je modifie le value du form mais je ne sais pas comment faire! J'ai essayé dans la vue mais je n'ai pas réussi!

voici mon code:

if request.method == 'POST' and request.user.is_authenticated():
		form_change_mail=ChangeMailForms(request.POST)
	else:
		form_change_mail=ChangeMailForms()
		#form_change_mail.mail.value=request.user.email
		#form_change_mail.cleaned_data['mail']=request.user.email
	return render(request,'profil.html',{'form_change_mail':form_change_mail})


J'ai mis en commentaire ce que j'essaie de faire, voici mon forms.py:

class ChangepasswordForms(forms.Form):
	passwd_actuel=forms.CharField(max_length=15,widget=forms.PasswordInput(attrs={'id': 'input_pass',
																					'required': 'required'}))

J'ai cherché dans la doc: https://docs.djangoproject.com/en/dev/ [...] s/modelforms/ et https://docs.djangoproject.com/en/dev/ [...] ?from=olddocs mais je n'ai rien trouvé!

En espérant que vous puissiez m'aider,

Cordialement,

sushis
  • Partager sur Facebook
  • Partager sur Twitter
20 novembre 2012 à 19:00:04

Si j'ai bien compris ce que tu souhaites faire, c'est afficher par défaut l'adresse mail de l'utilisateur connecté lorsqu'il accède à la page d'édition de profil. Pour ce faire, tu peux manipuler le formulaire via l'argument initial, qui permet de spécifier le contenu des champs au début.

if request.method == 'POST' and request.user.is_authenticated():
    form_change_mail=ChangeMailForms(request.POST)
else:
    form_change_mail=ChangeMailForms(initial={'mail': request.user.email})
return render(request,'profil.html',{'form_change_mail':form_change_mail})


En espérant ne pas avoir répondu à coté :-°
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2012 à 20:26:37

C'est exactement ça! ce qui m'énerve c'est que je n'ai pas réussit à le trouver dans la doc.....

où as tu trouver ça?
  • Partager sur Facebook
  • Partager sur Twitter
22 novembre 2012 à 20:53:21

Plutôt bien caché sur cette page, mais je l'ai déjà utilisé dans des projets. Petit ajout qui serait bon de faire dans le cours du Site du Zéro donc, merci à toi :)
  • Partager sur Facebook
  • Partager sur Twitter
23 novembre 2012 à 5:20:59

Oui j'ai suivit votre tuto avant de commencer mon projet et y'a pas mal de chose à mettre encore (des détails mais si on veut utiliser toutes les fonctionnalités de l'HTML 5 avec les formulaires y'a quelques trucs à savoir!).

Comme je note tout, une fois que j'ai terminé mon projet (je pense en avoir fait les 2/3 là et je vais tout faire pour le finir avant le début de l'année), je peux te donner la liste de toutes les choses dont j'ai eu besoin et qui n'était pas dans ton tuto.

Merci pour ton aide A++
  • Partager sur Facebook
  • Partager sur Twitter
27 janvier 2023 à 19:26:17

Bonjour, et si on a un modèle avec 4 objets, que l'on veuille passer par un formulaire 3 des 4 objets, comment mettre une valeur par défaut au 4ème qui n'est donc pas dans le formulaire ?

-
Edité par LionelRocheteau1 27 janvier 2023 à 19:28:54

  • Partager sur Facebook
  • Partager sur Twitter
27 janvier 2023 à 19:32:20

@LionelRocheteau1 Bonsoir, merci de ne pas déterrer d'ancien sujet résolu pour une nouvelle question, créer le votre en nous communiquant le code que vous avez écrit.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter