Vous n'êtes pas identifié(e).
Bonsoir
je voudrais réaliser un tableau avec cellule. Je m'explique:
je travaille sur une application de gestion d'élève. j'aimerais saisir les
notes dans des cellules de tableau (à l'image d'excel). les élèves sont
générés à partir de la base de données
models.py
class Stagiaire(models.Model):
stgr_id = models.AutoField(primary_key=True)
nom_st = models.CharField(max_length=25, verbose_name='Nom')
nomj_st = models.CharField(max_length=25,null=True,
blank=True,verbose_name='Nom de jeune fille')
pnom_st = models.CharField(max_length=25, verbose_name=u'Prénom')
matricule = models.CharField(max_length=10, unique=True)
class Examen(models.Model):
exam_id = models.AutoField(primary_key=True)
note = models.FloatField()
stgr = models.ForeignKey(Stagiaire)
stage = models.ForeignKey(Stage)
views.py
def note(request, ids): //ids est le fk du stage venant de la table Stage
de la base
row = Stagiaire.objects.all()
tab=''
if request.method == 'POST':
tab = request.POST
//donc ici je ne sais pas quoi faire pour insérer en une fois
dans Examen
return render_to_response('airfast/examen_note.html', {'row':row})
<form name="fm" method="post">
<table align="center" class="zebra">
<thead>
<tr>
<td>Nom</td>
<td>Prénom</td>
<td> Matricule </td>
<td> Note de devoir </td>
</tr>
</thead>
{% for item in row %}
<tr>
<td>{{ item.nom_st }}</td>
<td>{{ item.pnom_st }}</td>
<td>{{ item.matricule }}</td>
<td><input type="text" size="6" name="note"/></td>
</tr>
{% endfor %}
</table>
<p align="center"><input type="submit" value="enrégistrer"/></p>
</form>
Hors ligne
Bonjour,
Il y a à mon avis un problème conceptuel dans les modèles. Il en
faudrait trois :
Stagiaire, tel que présenté
Examen
id
nom
date
et une table de relations notes
id
note
exam = foreignKey(Examen)
stag = foreignKey(Stagiaire)
puis transmettre dans le POST l'id examen et l'idstagiaire, ainsi que la
valeur de la note.
Guillaume
Séno Hervé Edorh a écrit :
> Bonsoir
> je voudrais réaliser un tableau avec cellule. Je m'explique:
> je travaille sur une application de gestion d'élève. j'aimerais
> saisir les notes dans des cellules de tableau (à l'image d'excel). les
> élèves sont générés à partir de la base de données
>
> models.py
>
> class Stagiaire(models.Model):
> stgr_id = models.AutoField(primary_key=True)
> nom_st = models.CharField(max_length=25, verbose_name='Nom')
> nomj_st = models.CharField(max_length=25,null=True,
> blank=True,verbose_name='Nom de jeune
> fille')
> pnom_st = models.CharField(max_length=25, verbose_name=u'Prénom')
> matricule = models.CharField(max_length=10, unique=True)
>
> class Examen(models.Model):
> exam_id = models.AutoField(primary_key=True)
> note = models.FloatField()
> stgr = models.ForeignKey(Stagiaire)
> stage = models.ForeignKey(Stage)
>
>
>
>
> views.py
>
> def note(request, ids): //ids est le fk du stage venant de la table
> Stage de la base
>
> row = Stagiaire.objects.all()
> tab=''
> if request.method == 'POST':
>
> tab = request.POST
> //donc ici je ne sais pas quoi faire pour insérer en une
> fois dans Examen
>
> return render_to_response('airfast/examen_note.html', {'row':row})
>
>
> <form name="fm" method="post">
>
> <table align="center" class="zebra">
> <thead>
> <tr>
> <td>Nom</td>
> <td>Prénom</td>
> <td> Matricule </td>
> <td> Note de devoir </td>
> </tr>
> </thead>
> {% for item in row %}
> <tr>
> <td>{{ item.nom_st }}</td>
> <td>{{ item.pnom_st }}</td>
> <td>{{ item.matricule }}</td>
> <td><input type="text" size="6" name="note"/></td>
>
> </tr>
> {% endfor %}
> </table>
> <p align="center"><input type="submit" value="enrégistrer"/></p>
> </form>
> ------------------------------------------------------------------------
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
Hors ligne
c'est ce que j'ai fait regarde bien mon model mon problème est que mes
varariable request.POST sont dynamiques qui vient de la base, j'ai juste
omi de mettre la classe stage je dois normalement récupérer à partir de la
le id du stagiaire que j'insère dans les tables de la base. La clef du stage
je l'ai déjà car il provient d'une autre vue (ids) dans:
def note(request, ids):
Hors ligne
Salut,
J'ai peut etre mal compris le sens de ta question, ce que tu veux c'est
pouvoir insérer/éditer plusieurs entrée en une fois dans le formulaire ? Si
oui il faut voir du coté des Formset :
http://docs.djangoproject.com/en/dev/topics/forms/formsets/
+
Le Saturday 24 January 2009 22:17:49 Séno Hervé Edorh, vous avez écrit :
> Bonsoir
> je voudrais réaliser un tableau avec cellule. Je m'explique:
> je travaille sur une application de gestion d'élève. j'aimerais saisir les
> notes dans des cellules de tableau (à l'image d'excel). les élèves sont
> générés à partir de la base de données
>
> models.py
>
> class Stagiaire(models.Model):
> stgr_id = models.AutoField(primary_key=True)
> nom_st = models.CharField(max_length=25, verbose_name='Nom')
> nomj_st = models.CharField(max_length=25,null=True,
> blank=True,verbose_name='Nom de jeune
> fille') pnom_st = models.CharField(max_length=25, verbose_name=u'Prénom')
> matricule = models.CharField(max_length=10, unique=True)
>
> class Examen(models.Model):
> exam_id = models.AutoField(primary_key=True)
> note = models.FloatField()
> stgr = models.ForeignKey(Stagiaire)
> stage = models.ForeignKey(Stage)
>
>
>
>
> views.py
>
> def note(request, ids): //ids est le fk du stage venant de la table
> Stage de la base
>
> row = Stagiaire.objects.all()
> tab=''
> if request.method == 'POST':
>
> tab = request.POST
> //donc ici je ne sais pas quoi faire pour insérer en une fois
> dans Examen
>
> return render_to_response('airfast/examen_note.html', {'row':row})
>
>
> <form name="fm" method="post">
>
> <table align="center" class="zebra">
> <thead>
> <tr>
> <td>Nom</td>
> <td>Prénom</td>
> <td> Matricule </td>
> <td> Note de devoir </td>
> </tr>
> </thead>
> {% for item in row %}
> <tr>
> <td>{{ item.nom_st }}</td>
> <td>{{ item.pnom_st }}</td>
> <td>{{ item.matricule }}</td>
> <td><input type="text" size="6" name="note"/></td>
>
> </tr>
> {% endfor %}
> </table>
> <p align="center"><input type="submit" value="enrégistrer"/></p>
> </form>
>
> ---------------------------------------------------------------------------
>------------ Orange vous informe que cet e-mail a ete controle par
> l'anti-virus mail. Aucun virus connu a ce jour par nos services n'a ete
> detecte.
Hors ligne
Hello,
Le 25 janv. 09 à 00:42, David Thenon a écrit :
> Salut,
>
> J'ai peut etre mal compris le sens de ta question, ce que tu veux
> c'est
> pouvoir insérer/éditer plusieurs entrée en une fois dans le
> formulaire ? Si
> oui il faut voir du coté des Formset :
>
> http://docs.djangoproject.com/en/dev/topics/forms/formsets/
J'ai bien peur de ne pas tout avoir compris non plus mais voici un
article récent de Malcolm sur le sujet si jamais c'est ça :
http://www.pointy-stick.com/blog/2009/01/23/advanced-formset-usage-django/
Bonne soirée,
David
Hors ligne
non se n'est pas une histoire de formset, je m'explique encore. Je veux
entrer les notes des étudiants (stagiaires) dans des inputs je donne un
exemple
Marc philip <input type="text" name="note"/>
jules pascal <input type="text" name="note"/>
[...]
<input type="submit" value="enregistrer"/>
les noms viennent de la base pour les afficher (c'est dans mon views.py et
mon fichier html) c'est dynamique
{% for intem in row %}
intem.nom
[...]
{% endfor %}
le code ci dessus affiche les noms donc il faut que d'un seul clique
d'évènement du bouton submit les notes soient envoyé dans la table examen.
Hors ligne
Bah si tu veux enregistrer plusieurs input de "note" dans un unique
formulaire, t'es bien obligé d'utiliser un Formset non ?
Et sinon, après c'est juste un Form voire même un ModelForm un peu bidouillé
pour enregistrer dans Examen, en faisait passer dans chaque ligne de
note/instances du formset les ids nécessaires au foreignkey.
Le Sunday 25 January 2009 00:54:24 Séno Hervé Edorh, vous avez écrit :
> non se n'est pas une histoire de formset, je m'explique encore. Je veux
> entrer les notes des étudiants (stagiaires) dans des inputs je donne un
> exemple
>
> Marc philip <input type="text" name="note"/>
> jules pascal <input type="text" name="note"/>
> [...]
> <input type="submit" value="enregistrer"/>
>
> les noms viennent de la base pour les afficher (c'est dans mon views.py et
> mon fichier html) c'est dynamique
> {% for intem in row %}
> intem.nom
> [...]
> {% endfor %}
>
> le code ci dessus affiche les noms donc il faut que d'un seul clique
> d'évènement du bouton submit les notes soient envoyé dans la table examen.
>
> ---------------------------------------------------------------------------
>------------ Orange vous informe que cet e-mail a ete controle par
> l'anti-virus mail. Aucun virus connu a ce jour par nos services n'a ete
> detecte.
Hors ligne
je vais revoir les formset alors car peut être que je ne m'explique pas bien
ou que je ne comprend pas bien les formset. Car ce que je comprend des
formset c'est pour faire les updates de donnée d'un formulaire. Je vais
relire tout ça demain car je suis dessus depuis 9h du matin.
Merci a tous
Hors ligne