Django-fr

Forum

#1 15-04-2011 08:36:07

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

onchange= dans un champs de form

Salut

Je recherche dans la doc mais ce n'est pas evident

je creer un formulaire et je souhaite ajouter une methode onchange au champs
pour lancer une fonction javascript !

quelqu'un saurait m'indiquer ou se trouverai l'info ou un exemple

nomduchamp = forms.fileFied(auto_id=true, ?? )

Tonton

Hors ligne

#2 15-04-2011 09:21:24

Jérémie Ducastel
Membre
Inscription : 11-08-2010
Messages : 16

Re : onchange= dans un champs de form

je dirais qqchose comme :

ch

Le 15 avril 2011 09:36, Tonton <to.tonton _AT_ gmail.com> a écrit :
> Salut
>
> Je recherche dans la doc mais ce n'est pas evident
>
> je creer un formulaire et je souhaite ajouter une methode onchange au champs
> pour lancer une fonction javascript !
>
> quelqu'un saurait m'indiquer ou se trouverai l'info ou un exemple
>
> nomduchamp = forms.fileFied(auto_id=true, ?? )
>
> Tonton
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#3 15-04-2011 09:23:30

Jérémie Ducastel
Membre
Inscription : 11-08-2010
Messages : 16

Re : onchange= dans un champs de form

Pardon. Je disais donc :

champ = TaClasseField( widget = TaClasseWidget( attrs = {"onchange":
"ton appel de fonction"} ) )

Hors ligne

#4 15-04-2011 10:54:19

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

Re : onchange= dans un champs de form

impec
c'est dans forms/widgets

saurait tu m'expliquer l'usage de MultipleHiddenInput

En fait je cherche a pratiquer le multiple Upload non ce n'est pas une
pratique SM ou bondage (quoique j'ai bien mal ;o)
donc je voudrai envoyer plusieurs fichier dans mon formulaire ...

et le seul widget que je trouve semble etre MultipleHiddenInput

?

On Fri, Apr 15, 2011 at 10:23 AM, Jérémie Ducastel <jeremie _AT_ ducastel.name>wrote:

> Pardon. Je disais donc :
>
> champ = TaClasseField( widget = TaClasseWidget( attrs = {"onchange":
> "ton appel de fonction"} ) )
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#5 15-04-2011 11:13:38

Jérémie Ducastel
Membre
Inscription : 11-08-2010
Messages : 16

Re : onchange= dans un champs de form

le principe des multiplefield c'est qu'au final tu obtiens un seul objet python. Pourquoi pas un champ par fichier ? Le nombre peut être variable ?

Le 15 avr. 2011 à 11:54, Tonton <to.tonton _AT_ gmail.com> a écrit :

> impec
> c'est dans forms/widgets
>
> saurait tu m'expliquer l'usage de MultipleHiddenInput
>
> En fait je cherche a pratiquer le multiple Upload non ce n'est pas une pratique SM ou bondage (quoique j'ai bien mal ;o)
> donc je voudrai envoyer plusieurs fichier dans mon formulaire ...
>
> et le seul widget que je trouve semble etre MultipleHiddenInput
>
> ? 
>
> On Fri, Apr 15, 2011 at 10:23 AM, Jérémie Ducastel <jeremie _AT_ ducastel.name> wrote:
> Pardon. Je disais donc :
>
> champ = TaClasseField( widget = TaClasseWidget( attrs = {"onchange":
> "ton appel de fonction"} ) )
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#6 15-04-2011 11:24:41

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

Re : onchange= dans un champs de form

non juste 3
ce qui m'interesse c'est plus les 3 a la fois  !

je ne souhaite pas obtenir d'objet mais trois fichier dans un repertoire
envoyer en meme temps ...

euh ... bon ap ;o)

2011/4/15 Jeremie Ducastel <jeremie _AT_ ducastel.name>

> le principe des multiplefield c'est qu'au final tu obtiens un seul objet
> python. Pourquoi pas un champ par fichier ? Le nombre peut être variable ?
>
> Le 15 avr. 2011 à 11:54, Tonton <to.tonton _AT_ gmail.com> a écrit :
>
> impec
> c'est dans forms/widgets
>
> saurait tu m'expliquer l'usage de MultipleHiddenInput
>
> En fait je cherche a pratiquer le multiple Upload non ce n'est pas une
> pratique SM ou bondage (quoique j'ai bien mal ;o)
> donc je voudrai envoyer plusieurs fichier dans mon formulaire ...
>
> et le seul widget que je trouve semble etre MultipleHiddenInput
>
> ?
>
> On Fri, Apr 15, 2011 at 10:23 AM, Jérémie Ducastel <<jeremie _AT_ ducastel.name>
> jeremie _AT_ ducastel.name> wrote:
>
>> Pardon. Je disais donc :
>>
>> champ = TaClasseField( widget = TaClasseWidget( attrs = {"onchange":
>> "ton appel de fonction"} ) )
>> _______________________________________________
>> django mailing list
>>  <django@lists.afpy.org>django _AT_ lists.afpy.org
>>  <http://lists.afpy.org/mailman/listinfo/django>
>> http://lists.afpy.org/mailman/listinfo/django
>>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#7 15-04-2011 11:43:42

Jérémie Ducastel
Membre
Inscription : 11-08-2010
Messages : 16

Re : onchange= dans un champs de form

ton fichier tu le manipules via un objet quand même... tout est objet en python wink

déjà il faut comprendre qu'à chaque champ de formulaire correspond un objet Field et un Widget (attribut du Field). Le Field se charge de la validation et de la conversion de type etc, et a l'inverse le widget se charge du rendu HTML.

Utilises soit trois champs forms.FileField, soit un MultipleField contenant tes FileField. Si la complexité te parait justifiée. Et/ou si ça te parait plus "pythonique"...



Le 15 avr. 2011 à 12:24, Tonton <to.tonton _AT_ gmail.com> a écrit :

> non juste 3
> ce qui m'interesse c'est plus les 3 a la fois  !
>
> je ne souhaite pas obtenir d'objet mais trois fichier dans un repertoire envoyer en meme temps ...
>
> euh ... bon ap ;o)
>
> 2011/4/15 Jeremie Ducastel <jeremie _AT_ ducastel.name>
> le principe des multiplefield c'est qu'au final tu obtiens un seul objet python. Pourquoi pas un champ par fichier ? Le nombre peut être variable ?
>
> Le 15 avr. 2011 à 11:54, Tonton <to.tonton _AT_ gmail.com> a écrit :
>
>> impec
>> c'est dans forms/widgets
>>
>> saurait tu m'expliquer l'usage de MultipleHiddenInput
>>
>> En fait je cherche a pratiquer le multiple Upload non ce n'est pas une pratique SM ou bondage (quoique j'ai bien mal ;o)
>> donc je voudrai envoyer plusieurs fichier dans mon formulaire ...
>>
>> et le seul widget que je trouve semble etre MultipleHiddenInput
>>
>> ? 
>>
>> On Fri, Apr 15, 2011 at 10:23 AM, Jérémie Ducastel <jeremie _AT_ ducastel.name> wrote:
>> Pardon. Je disais donc :
>>
>> champ = TaClasseField( widget = TaClasseWidget( attrs = {"onchange":
>> "ton appel de fonction"} ) )
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>>
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#8 15-04-2011 13:50:27

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

Re : onchange= dans un champs de form

ben j'ai l'impression de preciser deux fois la meme info fileField et
FileInput ...
syntax error

class UploadFileForm(forms.Form):
    #title = forms.CharField(max_length=50)
    fichiershp  = forms.FileField(file=FileInput(attrs =
{"onchange":"change"})
    fichierdbf  = forms.FileField(file=FileInput(attrs =
{"onchange":"change"})  cette ligne là ...
    fichiershx  = forms.FileField(file=FileInput(attrs =
{"onchange":"change"})

alors que là
class UploadFileForm(forms.Form):
    #title = forms.CharField(max_length=50)
    fichiershp  = forms.FileField()
    fichierdbf  = forms.FileField()
    fichiershx  = forms.FileField()

il me construit un joli formulaire avec auto_id=True et as_p

le souci doit venir d'une importation manquant

j'ai from django import forms

2011/4/15 Jeremie Ducastel <jeremie _AT_ ducastel.name>

> ton fichier tu le manipules via un objet quand même... tout est objet en
> python wink
>
> déjà il faut comprendre qu'à chaque champ de formulaire correspond un objet
> Field et un Widget (attribut du Field). Le Field se charge de la validation
> et de la conversion de type etc, et a l'inverse le widget se charge du rendu
> HTML.
>
> Utilises soit trois champs forms.FileField, soit un MultipleField contenant
> tes FileField. Si la complexité te parait justifiée. Et/ou si ça te parait
> plus "pythonique"...
>
>
>
> Le 15 avr. 2011 à 12:24, Tonton <to.tonton _AT_ gmail.com> a écrit :
>
> non juste 3
> ce qui m'interesse c'est plus les 3 a la fois  !
>
> je ne souhaite pas obtenir d'objet mais trois fichier dans un repertoire
> envoyer en meme temps ...
>
> euh ... bon ap ;o)
>
> 2011/4/15 Jeremie Ducastel < <jeremie@ducastel.name>jeremie _AT_ ducastel.name>
>
>> le principe des multiplefield c'est qu'au final tu obtiens un seul objet
>> python. Pourquoi pas un champ par fichier ? Le nombre peut être variable ?
>>
>> Le 15 avr. 2011 à 11:54, Tonton < <to.tonton _AT_ gmail.com>
>> to.tonton _AT_ gmail.com> a écrit :
>>
>> impec
>> c'est dans forms/widgets
>>
>> saurait tu m'expliquer l'usage de MultipleHiddenInput
>>
>> En fait je cherche a pratiquer le multiple Upload non ce n'est pas une
>> pratique SM ou bondage (quoique j'ai bien mal ;o)
>> donc je voudrai envoyer plusieurs fichier dans mon formulaire ...
>>
>> et le seul widget que je trouve semble etre MultipleHiddenInput
>>
>> ?
>>
>> On Fri, Apr 15, 2011 at 10:23 AM, Jérémie Ducastel <<jeremie@ducastel.name><jeremie _AT_ ducastel.name>
>> jeremie _AT_ ducastel.name> wrote:
>>
>>> Pardon. Je disais donc :
>>>
>>> champ = TaClasseField( widget = TaClasseWidget( attrs = {"onchange":
>>> "ton appel de fonction"} ) )
>>> _______________________________________________
>>> django mailing list
>>>  <django _AT_ lists.afpy.org> <django@lists.afpy.org>django _AT_ lists.afpy.org
>>>  <http://lists.afpy.org/mailman/listinfo/django><http://lists.afpy.org/mailman/listinfo/django>
>>> http://lists.afpy.org/mailman/listinfo/django
>>>
>>
>> _______________________________________________
>> django mailing list
>> <django@lists.afpy.org>django _AT_ lists.afpy.org
>>  <http://lists.afpy.org/mailman/listinfo/django>
>> http://lists.afpy.org/mailman/listinfo/django
>>
>>
>> _______________________________________________
>> django mailing list
>>  <django@lists.afpy.org>django _AT_ lists.afpy.org
>>  <http://lists.afpy.org/mailman/listinfo/django>
>> http://lists.afpy.org/mailman/listinfo/django
>>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#9 15-04-2011 14:17:15

Jérémie Ducastel
Membre
Inscription : 11-08-2010
Messages : 16

Re : onchange= dans un champs de form

euh je crois plutôt que c'est les paramètres d'instanciation de tes champs...

essaies tonchamp = forms.FileField(widget=FileInput(attrs=...

sinon tu peux aussi préciser les widgets via la classe Meta du formulaire :

class MyForm:
    class Meta:
        widgets = {"nomduchamp": FileInput(attrs=...

Le 15 avr. 2011 à 14:50, Tonton <to.tonton _AT_ gmail.com> a écrit :

> ben j'ai l'impression de preciser deux fois la meme info fileField et FileInput ...
> syntax error
>
> class UploadFileForm(forms.Form):
>     #title = forms.CharField(max_length=50)
>     fichiershp  = forms.FileField(file=FileInput(attrs = {"onchange":"change"})
>     fichierdbf  = forms.FileField(file=FileInput(attrs = {"onchange":"change"})  cette ligne là ...
>     fichiershx  = forms.FileField(file=FileInput(attrs = {"onchange":"change"})
>
> alors que là
> class UploadFileForm(forms.Form):
>     #title = forms.CharField(max_length=50)
>     fichiershp  = forms.FileField()
>     fichierdbf  = forms.FileField()
>     fichiershx  = forms.FileField()
>
> il me construit un joli formulaire avec auto_id=True et as_p
>
> le souci doit venir d'une importation manquant
>
> j'ai from django import forms
>
> 2011/4/15 Jeremie Ducastel <jeremie _AT_ ducastel.name>
> ton fichier tu le manipules via un objet quand même... tout est objet en python wink
>
> déjà il faut comprendre qu'à chaque champ de formulaire correspond un objet Field et un Widget (attribut du Field). Le Field se charge de la validation et de la conversion de type etc, et a l'inverse le widget se charge du rendu HTML.
>
> Utilises soit trois champs forms.FileField, soit un MultipleField contenant tes FileField. Si la complexité te parait justifiée. Et/ou si ça te parait plus "pythonique"...
>
>
>
> Le 15 avr. 2011 à 12:24, Tonton <to.tonton _AT_ gmail.com> a écrit :
>
>> non juste 3
>> ce qui m'interesse c'est plus les 3 a la fois  !
>>
>> je ne souhaite pas obtenir d'objet mais trois fichier dans un repertoire envoyer en meme temps ...
>>
>> euh ... bon ap ;o)
>>
>> 2011/4/15 Jeremie Ducastel <jeremie _AT_ ducastel.name>
>> le principe des multiplefield c'est qu'au final tu obtiens un seul objet python. Pourquoi pas un champ par fichier ? Le nombre peut être variable ?
>>
>> Le 15 avr. 2011 à 11:54, Tonton <to.tonton _AT_ gmail.com> a écrit :
>>
>>> impec
>>> c'est dans forms/widgets
>>>
>>> saurait tu m'expliquer l'usage de MultipleHiddenInput
>>>
>>> En fait je cherche a pratiquer le multiple Upload non ce n'est pas une pratique SM ou bondage (quoique j'ai bien mal ;o)
>>> donc je voudrai envoyer plusieurs fichier dans mon formulaire ...
>>>
>>> et le seul widget que je trouve semble etre MultipleHiddenInput
>>>
>>> ? 
>>>
>>> On Fri, Apr 15, 2011 at 10:23 AM, Jérémie Ducastel <jeremie _AT_ ducastel.name> wrote:
>>> Pardon. Je disais donc :
>>>
>>> champ = TaClasseField( widget = TaClasseWidget( attrs = {"onchange":
>>> "ton appel de fonction"} ) )
>>> _______________________________________________
>>> django mailing list
>>> django _AT_ lists.afpy.org
>>> http://lists.afpy.org/mailman/listinfo/django
>>>
>>> _______________________________________________
>>> django mailing list
>>> django _AT_ lists.afpy.org
>>> http://lists.afpy.org/mailman/listinfo/django
>>
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>>
>> _______________________________________________
>> django mailing list
>> django _AT_ lists.afpy.org
>> http://lists.afpy.org/mailman/listinfo/django
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django

Hors ligne

#10 15-04-2011 14:23:55

Tonton
Membre
Inscription : 20-09-2010
Messages : 75

Re : onchange= dans un champs de form

ben en deux ligne ça passe !

    fichiershp  = forms.FileField(widget=forms.FileInput())
    fichiershp.widget.attrs['onchange']="change(this)";

Merci pour la bonne piste !!
Tonton

2011/4/15 Jeremie Ducastel <jeremie _AT_ ducastel.name>

> euh je crois plutôt que c'est les paramètres d'instanciation de tes
> champs...
>
> essaies tonchamp = forms.FileField(widget=FileInput(attrs=...
>
> sinon tu peux aussi préciser les widgets via la classe Meta du formulaire :
>
> class MyForm:
>     class Meta:
>         widgets = {"nomduchamp": FileInput(attrs=...
>
> Le 15 avr. 2011 à 14:50, Tonton <to.tonton _AT_ gmail.com> a écrit :
>
> ben j'ai l'impression de preciser deux fois la meme info fileField et
> FileInput ...
> syntax error
>
> class UploadFileForm(forms.Form):
>     #title = forms.CharField(max_length=50)
>     fichiershp  = forms.FileField(file=FileInput(attrs =
> {"onchange":"change"})
>     fichierdbf  = forms.FileField(file=FileInput(attrs =
> {"onchange":"change"})  cette ligne là ...
>     fichiershx  = forms.FileField(file=FileInput(attrs =
> {"onchange":"change"})
>
> alors que là
> class UploadFileForm(forms.Form):
>     #title = forms.CharField(max_length=50)
>     fichiershp  = forms.FileField()
>     fichierdbf  = forms.FileField()
>     fichiershx  = forms.FileField()
>
> il me construit un joli formulaire avec auto_id=True et as_p
>
> le souci doit venir d'une importation manquant
>
> j'ai from django import forms
>
> 2011/4/15 Jeremie Ducastel < <jeremie@ducastel.name>jeremie _AT_ ducastel.name>
>
>> ton fichier tu le manipules via un objet quand même... tout est objet en
>> python wink
>>
>> déjà il faut comprendre qu'à chaque champ de formulaire correspond un
>> objet Field et un Widget (attribut du Field). Le Field se charge de la
>> validation et de la conversion de type etc, et a l'inverse le widget se
>> charge du rendu HTML.
>>
>> Utilises soit trois champs forms.FileField, soit un MultipleField
>> contenant tes FileField. Si la complexité te parait justifiée. Et/ou si ça
>> te parait plus "pythonique"...
>>
>>
>>
>> Le 15 avr. 2011 à 12:24, Tonton < <to.tonton _AT_ gmail.com>
>> to.tonton _AT_ gmail.com> a écrit :
>>
>> non juste 3
>> ce qui m'interesse c'est plus les 3 a la fois  !
>>
>> je ne souhaite pas obtenir d'objet mais trois fichier dans un repertoire
>> envoyer en meme temps ...
>>
>> euh ... bon ap ;o)
>>
>> 2011/4/15 Jeremie Ducastel < <jeremie@ducastel.name><jeremie _AT_ ducastel.name>
>> jeremie _AT_ ducastel.name>
>>
>>> le principe des multiplefield c'est qu'au final tu obtiens un seul objet
>>> python. Pourquoi pas un champ par fichier ? Le nombre peut être variable ?
>>>
>>> Le 15 avr. 2011 à 11:54, Tonton < <to.tonton@gmail.com><to.tonton _AT_ gmail.com>
>>> to.tonton _AT_ gmail.com> a écrit :
>>>
>>> impec
>>> c'est dans forms/widgets
>>>
>>> saurait tu m'expliquer l'usage de MultipleHiddenInput
>>>
>>> En fait je cherche a pratiquer le multiple Upload non ce n'est pas une
>>> pratique SM ou bondage (quoique j'ai bien mal ;o)
>>> donc je voudrai envoyer plusieurs fichier dans mon formulaire ...
>>>
>>> et le seul widget que je trouve semble etre MultipleHiddenInput
>>>
>>> ?
>>>
>>> On Fri, Apr 15, 2011 at 10:23 AM, Jérémie Ducastel <<jeremie@ducastel.name><jeremie@ducastel.name><jeremie _AT_ ducastel.name>
>>> jeremie _AT_ ducastel.name> wrote:
>>>
>>>> Pardon. Je disais donc :
>>>>
>>>> champ = TaClasseField( widget = TaClasseWidget( attrs = {"onchange":
>>>> "ton appel de fonction"} ) )
>>>> _______________________________________________
>>>> django mailing list
>>>>  <django _AT_ lists.afpy.org> <django@lists.afpy.org><django _AT_ lists.afpy.org>
>>>> django _AT_ lists.afpy.org
>>>>  <http://lists.afpy.org/mailman/listinfo/django><http://lists.afpy.org/mailman/listinfo/django><http://lists.afpy.org/mailman/listinfo/django>
>>>> http://lists.afpy.org/mailman/listinfo/django
>>>>
>>>
>>> _______________________________________________
>>> django mailing list
>>> <django _AT_ lists.afpy.org> <django@lists.afpy.org>django _AT_ lists.afpy.org
>>>  <http://lists.afpy.org/mailman/listinfo/django><http://lists.afpy.org/mailman/listinfo/django>
>>> http://lists.afpy.org/mailman/listinfo/django
>>>
>>>
>>> _______________________________________________
>>> django mailing list
>>>  <django _AT_ lists.afpy.org> <django@lists.afpy.org>django _AT_ lists.afpy.org
>>>  <http://lists.afpy.org/mailman/listinfo/django><http://lists.afpy.org/mailman/listinfo/django>
>>> http://lists.afpy.org/mailman/listinfo/django
>>>
>>
>> _______________________________________________
>> django mailing list
>> <django@lists.afpy.org>django _AT_ lists.afpy.org
>>  <http://lists.afpy.org/mailman/listinfo/django>
>> http://lists.afpy.org/mailman/listinfo/django
>>
>>
>> _______________________________________________
>> django mailing list
>>  <django@lists.afpy.org>django _AT_ lists.afpy.org
>>  <http://lists.afpy.org/mailman/listinfo/django>
>> http://lists.afpy.org/mailman/listinfo/django
>>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>
>
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

Pied de page des forums