[Zope3-french-user] Problème zope.schema
Christophe Combelles
ccomb at free.fr
Jeu 14 Fév 18:15:57 CET 2008
Sébastien CHAZALLET a écrit :
> Bonjour,
Salut !
>
> Afin de tester ce qui existe dans zope.schema, j'ai voulu tenter
> différentes choses.
>
> J'ai effectué en intégralité le tutoriel sur z3c traduit par Thierry
> Florac et je suis parti du code ainsi écrit pour faire mes tests.
>
> dans contact.py j'ai rajouté :
>
> test01 = FieldProperty(interfaces.IContact['test01'])
> test02 = FieldProperty(interfaces.IContact['test02'])
> test03 = FieldProperty(interfaces.IContact['test03'])
> test04 = FieldProperty(interfaces.IContact['test04'])
> test05 = FieldProperty(interfaces.IContact['test05'])
> test06 = FieldProperty(interfaces.IContact['test06'])
> test07 = FieldProperty(interfaces.IContact['test07'])
> test08 = FieldProperty(interfaces.IContact['test08'])
> test09 = FieldProperty(interfaces.IContact['test09'])
> test10 = FieldProperty(interfaces.IContact['test10'])
> test11 = FieldProperty(interfaces.IContact['test11'])
> test12 = FieldProperty(interfaces.IContact['test12'])
> test13 = FieldProperty(interfaces.IContact['test13'])
> test14 = FieldProperty(interfaces.IContact['test14'])
> test15 = FieldProperty(interfaces.IContact['test15'])
> test16 = FieldProperty(interfaces.IContact['test16'])
>
>
> dans interfaces.py j'ai rajouté :
>
> test01 = zope.schema.Text(
> title=u"Text",
> required=False)
> test02 = zope.schema.Bool(
> title=u"Bool",
> required=False)
> test03 = zope.schema.Int(
> title=u"Int",
> required=False)
> test04 = zope.schema.Float(
> title=u"Float",
> required=False)# Maxi 3 Chiffres après la virgule.
> test05 = zope.schema.Decimal(
> title=u"Decimal",
> required=False)# Maxi 3 Chiffres après la virgule.
> test06 = zope.schema.Tuple(
> title=u"Tuple",
> required=False)
> test07 = zope.schema.List(
> title=u"List",
> required=False)
> test08 = zope.schema.Set(
> title=u"Set",
> required=False)
> test09 = zope.schema.FrozenSet(
> title=u"FrozenSet",
> required=False)
> test10 = zope.schema.Password(
> title=u"Password",
> required=False)
> test11 = zope.schema.Dict(
> title=u"Dict",
> required=False)
> test12 = zope.schema.Datetime(
> title=u"Datetime",
> required=False)#Format : 12/04/99 10:12
> test13 = zope.schema.Date(
> title=u"Date",
> required=False)#Format : 12/04/99
> test14 = zope.schema.Timedelta(
> title=u"Timedelta",
> required=False)#Format : 0 days, 5:17:12
> test15 = zope.schema.Time(
> title=u"Time",
> required=False)#Format : 10:12
> test16 = zope.schema.SourceText(
> title=u"SourceText",
> required=False)
>
>
> J'ai essayé de faire marcher le formulaire addContact :
> Il se trouve que test06, test07, test08, test09 et test11 ne
> fonctionnent pas du tout.
> (en supprimant ces entrées, tout fonctionne parfaitement)
>
> En d'autres termes, je n'arrive pas à utiliser les types container
> (Tuple, List, Set, FrozenSet, Dict)
Pour List, Tuple et les autres, il faut indiquer "value_type" avec un Field qui
dit de quoi est composée la liste.
Par exemple List(title=u"List",required=False, value_type=Int(title='entier'))
pour une liste d'entiers.
http://apidoc.zope.org/++apidoc++/Interface/zope.schema.interfaces.IList/index.html
Par contre il manque quelques widgets dans z3c.form.
Avec zope.formlib tu peux faire une liste de n'importe quoi, et meme faire
List( value_type=Object( schema=IMonObjet))
et il se démerde pour te fabriquer le formulaire.
Avec z3c.form il faut le faire à la main en utilisant des "subforms". C'est plus
souple, mais plus long à écrire. J'avais commencé à implémenter un ObjectWidget
pour qu'il puisse faire ça automatiquement mais j'ai pas eu le temps de finir et
ça traine dans le bac à sable :(
Christophe
>
> J'ai esssayé de rajouter des arguments : default, min_length,
> max_length, key_type, value_type, de chercher s'il fallait rajouter
> quelque chose de spécifique dans le configure.zcml...
>
>
> L'un de vous aurait-il une idée sur la question ou pourrait tester çà
> chez lui ?
>
> Merci pour vos réponses.
>
>
> Sébastien CHAZALLET
>
> _______________________________________________
> zope3-french-user mailing list
> zope3-french-user at lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/zope3-french-user
>
>
Plus d'informations sur la liste de diffusion zope3-french-user