Django-fr

Forum

#1 31-01-2012 10:17:17

BlueMagma
Membre
Inscription : 30-01-2012
Messages : 6

[resolue]Creer des variable dans un form

Bonjour,

je souhaite créer des variable dans un form dont les noms seront les éléments d'une de mes tables.

en gros, mes models ressemble a ca :

class SectionDonnee(models.Model):
    libelle = models.CharField(max_length=50, unique=True)

class Donnee(models.Model):
    libelle = models.CharField(max_length=50, unique=True)
    section = models.ForeignKey(SectionDonnee, editable=False)

class Arbre(models.Model):
    code = models.CharField(max_length=10, unique=True)
    donnees = models.ManyToManyField(Donnee, editable=False)

Dans le form de l'arbre, je veux avoir un champ par SectionDonnee (forms.ModelChoiceField) dont les valeur possible seront les Donnee qui appartienne a cette section

class ArbreForm(ModelForm):
    for i in SectionDonnee.objects.all():
        #creer variable de nom (i.libelle) = forms.ModelChoiceField(queryset=Donnee.objects.filter(section__id=i.id), required=True)

Comment puis je faire ca ?

Dernière modification par BlueMagma (31-01-2012 10:56:08)

Hors ligne

#2 31-01-2012 10:54:55

BlueMagma
Membre
Inscription : 30-01-2012
Messages : 6

Re : [resolue]Creer des variable dans un form

J'ai trouvé la solution tout seul en fait, merci quand meme, si quelqu'un a cherché

voici la dite solution :

for i in SectionDonnee.objects.all():
        vars()[i.libelle] = forms.ModelChoiceField(queryset=Donnee.objects.filter(section__id=i.id), required=True)

en fait le probleme etait de creer une variable a partir d'une chaine de caractere, la solution est plutot simple

food = 'bread'
vars()[food] = 123
print bread # --> 123

Hors ligne

Pied de page des forums