dm.zope.schema ay naglalaman ng mga extension para sa zope.schema.
Mga module
patunayan
Ang isang kasamahan sa zope.interface.verify para sa schema bahagi ng mga interface.
Ito ay nagtataglay ng pag-andar verify_schema (iface, obj, konteksto = Wala, check_declaration = True) na-verify na obj natutugunan ang schema bahagi ng interface iface. Mga patlang ng schema kailangan upang makakuha ng nakatali sa konteksto bago ma-validate. Tinutukoy ng konteksto kontekstong ito at ang mga default upang obj. check_declaration mga tseke na declares obj sa privide iface.
panukala
Ang pangunahing nilalaman ay ang mixin klase SchemaConfigured. Sinusuportahan nito ang configuration ayon sa schema bahagi ng interface ipinatupad ng mga SchemaConfigured nagmula klase. Kung nais mong kontrolin kung saan interface ng schema ay nagmula, maaari mong gamitin ang klase ng katangian SC_SCHEMAS: halaga nito ay dapat na Wala (awtomatikong nakukuha schema mula sa ipinatupad interface), ang isang solong interface o isang tuple ng mga interface. Pagkuha ng tahasang pag-kontrol sa mga interface na ginamit upang matukoy ang schema ay lalong mahalaga para sa Zope 2 schema-configure klase ng nilalaman (bilang kanilang base klase OFS.SimpleItem.SimpleItem ipinapatupad ng isang malaking bilang ng mga interface kung saan ang mga patlang malamang ayaw sa iyong schema).
Ang mixin klase SchemaConfiguredEvolution ay nagbibigay ng suporta para sa schema ebolusyon para sa (ZODB) paulit-ulit na mga bagay. Nito __setstate__ nagdaragdag nawawalang mga katangian sa bagay tulad na maaari mong magdagdag ng mga bagong patlang sa iyong schema at pa rin ang lahat kaukulang mga katangian sa kani-kanilang mga bagay kahit na ang mga nagawa bago ang extension. Tandaan: sa pagkakasunod-sunod para SchemaConfiguredEvolution upang maging mabisa, dapat itong dumating nang maaga sa resolusyon na pamamaraan ng order (mro) (bago persistent.Persistent). Iyon ang dahilan kung bakit ay ay isang hiwalay na klase at hindi kasama tampok nito sa SchemaConfigured mismo (maaaring mayroong magandang dahilan upang pa SchemaConfigured huli sa mro). Bilang isang kahalili sa paggamit ng SchemaConfiguredEvolution, maaari mong gamitin ang mga halaga ng default na tinukoy sa antas ng klase para sa bagong field.
Paminsan-minsan, function schemaitems at schemadict ay maaaring maging usefull. -Extract nila ang schema bahagi ng isang interface o interface ng detalye ng isang listahan ng id, pares na field o isang diksyunaryo, ayon sa pagkakabanggit.
Ang patlang ng Bagay ay isang kapalit para sa zope.schema.Object. Ang huli ay kulang na impormasyon na patlang sa mga error sa pagpapatunay (https://bugs.launchpad.net/zope.schema/+bug/620324) na gumagawa ng pagkakakilanlan ng apektadong mga patlang kinakailangan mahirap. Paminsan-minsan, gusto ng isa upang sugpuin ang check na tahasang declares isang napatotohanang object na magbigay ng interface. May mga karagdagang ari-arian check_declaration upang kontrolin ito (mga default sa True) Bagay.
propertymanager
Module na ito ipinapatupad ng isang schema batay OFS.PropertyManager.PropertyManager subclass. Ang _properties attribute na naglalarawan sa mga katangian ay hindi pinapanatili sa mga klase o mga paglitaw nito ngunit nakuha mula sa ibinigay na (ayon sa pagkakabanggit ipinatupad) schema. Para sa sandaling ito, ang mga katangian ay hindi maaaring pinalawak na sa isang antas batay Halimbawa (maliban sa pamamagitan ng pagbibigay ng isa pang schema).
zope.schema gumagamit ng Unicode upang kumatawan teksto. PropertyManager maaari sa prinsipyo katangian ng suporta sa Unicode. Gayunpaman, dahil sa isang bug / kahinaan, ang pahina ng pamamahala ng ari-arian pinangangasiwaan ang mga ito nang tama lamang, kapag management_page_charset ay hindi natukoy o may halaga UTF-8 (tandaan itaas spelling kaso!). Gumagamit kami ng mga Unicode na pag-aari ng bilang default maliban kung management_page_charset.upper () ay magbubunga ng isang halaga na naiiba mula UTF-8. Nagbibigay din kami ng isang mixin klase WorkaroundSpelling_management_page_charset upang gumana sa paligid ugok paggigiit Zope sa itaas spelling kaso para sa management_page_charset.
Para sa sandaling ito, ang mga sumusunod na uri ng patlang ay suportado: Text, TextLine, Bytes, BytesLine`, Bool, Int, Float at Listahan sa isang uri ng halaga ng TextLine o BytesLine. Iba pang mga uri itataas NotImplementedError.
Ang module ay ipinatupad upang makakuha dm.zope.generate. Isang alternatibo ay naging ang pagpapatupad ng pagbuo ng mga kagamitan batay sa "zope.formlib" at ang paggamit ng sa gayon tinatawag na mga form ng add. Depende sa karanasan, maaari ko bang ilipat sa alternatibong ito.
paraan
Ang module na tumutukoy sa default na pag-edit (SchemaConfiguredEditForm) at display (SchemaConfiguredDisplayForm) mga form para sa dm.zope.schema.schema.SchemaConfigured.
Depende ito sa zope.formlib.
widget
Nagbibigay ng display at i-edit ang mga widget para sa Timedelta mga patlang, isang disenteng display widget para sa mga patlang ng password (ang default na nagpapakita ng mga password sa cleartext) at isang input widget para sa Password na hindi pipilit sa iyo na magbigay ng halaga password sa tuwing magsa-edit ang form.
Depende ito sa zope.app.form sa mga mas lumang bersyon Zope at sa zope.formlib sa mas bagong mga bago.
z2
Pinagsasama subpackage ito schema na may kaugnayan at Zope 2-andar. Sa mga mas bagong bersyon Zope, ito ay depende sa five.formlib.
paraan
Ang module na tumutukoy sa default na pag-edit (SchemaConfiguredEditForm) at display (SchemaConfiguredDisplayForm) mga form para sa dm.zope.schema.schema.SchemaConfigured para gamitin sa Zope 2.
Depende ito sa zope.formlib.
tagapagbuo
Module na ito ay naglalaman ng isang add form na klase SchemaConfiguredAddForm at ng factory add_form_factory para sa henerasyon ng isang add form (na tinatawag na "constructor" sa pamamagitan ng Zope 2) para sa dm.zope.schema.schema.SchemaConfigured batay klase. Ang nabuong add form na ay kadalasang ginagamit bilang bahagi ng constructor parameter sa registerClass.
add_form_factory ay ang mga parameter:
& Nbsp; default na pangalan ng paglalarawan
& Nbsp; class_ sa klase upang bumuo ng form para sa
& Nbsp; title Lumikha ng halimbawa ng class_ ipinapakita ang pamagat sa anyo
& Nbsp; klase paglalarawan _.__ doc__ sa papeles na ipinakita sa anyo
& Nbsp; form_class SchemaConfiguredAddForm form na klase na gagamitin
bumubuo add_form_factory isang form zope.formlib sa mga patlang ng natukoy ng ipinatupad schema ng dm.zope.schema.schema.SchemaConfigured klase class_.
Module na ito ay katulad ng dm.zope.generate.constructor. Gayunpaman, ito ay gumagana para sa mga klase batay SchemaConfigured habang ang huli ay sumusuporta sa PropertyManager batay klase.
template
Nagbibigay ng view ng pahina ng template form_template magagawang tingnan at i-edit Zope 2 schema object-configure nilalaman sa loob ng standard na interface ZMI.
Mga halimbawa
I-setup ang: Tinutukoy nito ang dalawang mga schema S1 at S2, isang interface ko at isang klase C panggagaling mula SchemaConfigured pagpapatupad ng schema at ang interface.
>>> Mula zope.interface import Interface, ipinapatupad, providedBy
>>> Mula zope.schema import Int
>>>
>>> Mula dm.zope.schema.schema import SchemaConfigured
>>> Mula dm.zope.schema.verify import verify_schema
>>>
>>> Klase S1 (Interface): i1 = Int (default = 0)
...
>>> Klase S2 (Interface): i2 = Int (default = 1)
...
>>> Klase ko (Interface):
... Def pamamaraan (): pass
...
>>> Klase C (SchemaConfigured):
... Ipinapatupad ng (S1, S2, I)
... Def pamamaraan (sa sarili): pass
...
Mga pagkakataon C ay may mga katangian na nauukol sa mga patlang ng schema. Kung walang mga argumento ay binibigyan para sa constructor, kumuha ng mga ito sa patlang ng default na bilang halaga. Ibinigay (keyword!) Mga argumento i-override ang mga default.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> C = C (i1 = 5)
>>> C.i1
5
Ang constructor rejects argumento keyword ay hindi natukoy sa schema upang mabilis na makita ang mga error sa spelling. Gayunpaman, ito hampers ang paggamit ng super sa klase hierarchy para sa pamamaraan __init__. Siguro, ang mga bersyon sa hinaharap ay magbigay ng paraan upang makontrol ang check.
>>> C = C (x = 5)
Traceback (pinakahuling tawag huling):
& Nbsp; ...
TypeError: hindi argumento schema keyword: x
Kung ang mga halaga ng patlang ay naaangkop, mga halimbawa C ibigay ang mga schema (bilang na-verify ng verify_schema). Kung hindi man, verify_schema itataas ng pagbubukod. Halimbawang ito ay nagpapakita rin sa elementarya paggamit ng verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = Wala
>>> Verify_schema (S1, c)
Traceback (pinakahuling tawag huling):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [('i1', RequiredMissing ())]
Maaari naming lumikha ng isang pag-edit (o display) form para sa aming mga bagay. Mga field ng form ay awtomatikong nilikha para sa aming mga patlang ng schema. Ang form ng klase magkaroon ng isang paraan ng customize_fields maaari mong i-override upang magbigay ng custom na field at / o mga widget.
Katulad na pag-andar ay magagamit para sa Zope 2 sa z2 subpackage.
>>> Mula zope.publisher.browser import TestRequest
>>> Mula dm.zope.schema.form import SchemaConfiguredEditForm
>>>
>>> Paraan = SchemaConfiguredEditForm (c, TestRequest ())
>>> Listahan ([f .__ name__ para sa f form.form_fields])
['I1', 'i2']
Ano ang bagong sa paglabas:
- suporta sa form na
- Zope 2 constructor suporta li>
Mga Kinakailangan :
- Python
Mga Komento hindi natagpuan