dm.zope.schema yra plėtinius zope.schema.
Moduliai
patikrinti
Kompanionas zope.interface.verify už schemos dalis sąsajos.
Jame yra funkcija verify_schema (iface, obj, kontekstas = Nėra, check_declaration = True), kuri patvirtina, kad obj atitinka schemos dalį sąsajos iface. Schemos laukus reikia gauti privalo kontekste, kol jie gali būti patvirtinti. kontekstas nurodo šį kontekstą ir pagal nutylėjimą OBJ. check_declaration patikrinimus, kad obj pareiškia privide iface.
schema
Pagrindinis turinys mixin klasės SchemaConfigured. Jis palaiko konfigūraciją pagal Schemos dalis sąsajų įgyvendinamų SchemaConfigured gautų klasės. Jei norite kontroliuoti, iš kurios sąsajos schema yra kilęs, galite naudoti klasės atributą SC_SCHEMAS: jo vertė turėtų būti Nėra (gauti schema automatiškai iš įgyvendinamų sąsajos), vieną sąsają arba sąsajų kortežas. Atsižvelgiant aiškų kontrolę sąsajų, naudojamų nustatyti schema yra ypač svarbu Zope 2 schemų konfigūruotų turinio klases (jų pagrindinės klasės OFS.SimpleItem.SimpleItem įgyvendina daugybę sąsajų, kurių laukai jūs tikriausiai nenorite savo schema).
Mixin klasės SchemaConfiguredEvolution teikia paramą schemos kitimą (ZODB) patvarių daiktų. Jo __setstate__ priduria trūksta atributus į objektą, pavyzdžiui, kad jūs galite pridėti naujus laukus su savo schema ir dar rasti visus atitinkamus atributus dėl atitinkamų objektų, net jei jos buvo sukurtos prieš pratęsimo. Pastaba: Kad SchemaConfiguredEvolution būtų veiksminga, ji turi ateiti anksti metodas rezoliucijos tvarka (MRO) (prieš persistent.Persistent). Štai kodėl yra atskira klasė ir jos funkcija nėra įtraukta į patį SchemaConfigured (gali būti svarių priežasčių, kad SchemaConfigured vėlai PRO). Kaip į SchemaConfiguredEvolution naudojimo alternatyva, galite naudoti apibrėžtus nuo klasės lygio naujose srityse numatytąsias reikšmes.
Kartais, funkcijos schemaitems ir schemadict gali būti naudinga. Jie išgauti schemos dalį sąsajos arba sąsajos specifikacija kaip id sąrašą, lauko poromis ar žodyno, atitinkamai.
Lauko objektas yra už zope.schema.Object keitimas. Pastarasis trūksta lauko informaciją patvirtinimo klaidų (https://bugs.launchpad.net/zope.schema/+bug/620324), kuri leidžia identifikuoti paveiktų sričių reikalo sunku. Kartais, vienas nori nuslopinti, patikrinkite, ar patvirtinti objektas aiškiai pareiškia, kad suteikia sąsają. Objektas turi papildomų viešbučio check_declaration kontroliuoti šį (pagal nutylėjimą true).
propertymanager
Šis modulis realizuoja schemos remiantis OFS.PropertyManager.PropertyManager poklasis. Į _properties atributas aprašant savybės nėra palaikoma nuo klasės ar jos atvejais, bet kilęs iš pateiktų (atitinkamai įgyvendinamos) schemas. Dėl to momento, savybės negali būti išplėstas ant pavyzdžiui grindžiama lygyje (išskyrus teikiant kitą schemą).
zope.schema naudoja Unicode atstovauti tekstą. PropertyManager iš esmės gali parama unicode savybių. Tačiau dėl to, kad klaidų / silpnumas, turto valdymas puslapis rankenos juos teisingai tik tada, kai management_page_charset nėra apibrėžta arba turi vertę UTF-8 (atkreipkite dėmesį į didžiąsias raides rašybą!). Mes, naudoja "Unicode savybės pagal nutylėjimą, nebent management_page_charset.upper () duoda vertę skiriasi nuo UTF-8. Mes taip pat suteikti Mixin klasės WorkaroundSpelling_management_page_charset dirbti aplink Zope kvaila primygtinio reikalavimo didžiųjų raidžių rašyba už management_page_charset.
Kol šie laukų tipai yra palaikomi: Tekstas, TextLine, baitai, BytesLine`, bool, int, float ir Sąrašas su vertės tipo TextLine ar BytesLine. Kiti tipai pakels NotImplementedError.
Modulis buvo vykdoma sverto dm.zope.generate. Alternatyva būtų buvę iš gamybos įrenginių, remiantis "zope.formlib" ir vadinamųjų papildomo formų naudojimo įgyvendinimas. Priklausomai nuo patirties, aš gali persijungti į šią alternatyvą.
forma
Modulis apibūdina numatytąją redaguoti (SchemaConfiguredEditForm) ir ekranas (SchemaConfiguredDisplayForm) formas dm.zope.schema.schema.SchemaConfigured.
Tai priklauso nuo zope.formlib.
Valdiklis
Teikia rodyti ir redaguoti raštai už Timedelta srityse, padorus ekranas valdikliui Slaptažodis srityse (pagal nutylėjimą rodo slaptažodžius atviru tekstu), o įėjimas valdikliui Slaptažodis kad neverčia jums suteikti slaptažodį vertę, kai redaguojate formą.
Tai priklauso nuo zope.app.form senesnių versijų Zope ir zope.formlib į naujesnių.
Z2
Tai subpackage sujungia schemos susiję ir Zope 2 funkcionalumas. Naujesniuose Zope versijų, tai priklauso nuo five.formlib.
forma
Modulis apibūdina numatytąją redaguoti (SchemaConfiguredEditForm) ir ekranas (SchemaConfiguredDisplayForm) formas dm.zope.schema.schema.SchemaConfigured naudoti Zope 2.
Tai priklauso nuo zope.formlib.
konstruktorius
Šis modulis yra pridėjimo forma klasės SchemaConfiguredAddForm ir gamyklos add_form_factory už add forma kartos (vadinamas "konstruktorius" Zope 2) dm.zope.schema.schema.SchemaConfigured remiantis klases. Generuoja papildomas forma paprastai naudojamas kaip dalis konstruktoriai parametras registerClass.
add_form_factory turi parametrus:
& Nbsp; vardas nutylėjimą aprašymas
& Nbsp; class_ klasę generuoti už formą
& Nbsp; pavadinimas Sukurti egzempliorių class_ pavadinimas parodyta forma
& Nbsp; aprašymą klasės _.__ doc__ parodytą formą dokumentus
& Nbsp; form_class SchemaConfiguredAddForm forma klasės turi būti naudojami
add_form_factory generuoja zope.formlib formą su apibrėžtomis įgyvendintų schemų iš dm.zope.schema.schema.SchemaConfigured klasės class_ srityse.
Šis modulis yra panašus į dm.zope.generate.constructor. Tačiau ji dirba SchemaConfigured remiantis klasių, o pastarasis palaiko PropertyManager pagrįstus klases.
šablonas
Suteikia vaizdas šablonas form_template galėsite peržiūrėti ir redaguoti Zope 2 schemos "sukonfigūruota turinio objektus per standartinį ZMI sąsaja.
Pavyzdžiai
Sąranka: Jis apibrėžia dvi schemas S1 ir S2, sąsajos I ir C klasės gaunamos iš SchemaConfigured įgyvendinti schemas ir sąsaja.
>>> Iš zope.interface importo sąsaja, padargai, providedBy
>>> Iš zope.schema importo Žiniasklaida
>>>
>>> Iš dm.zope.schema.schema importo SchemaConfigured
>>> Iš dm.zope.schema.verify importo verify_schema
>>>
>>> Klasė S1 (sąsaja): I1 = Žiniasklaida (numatytasis = 0)
...
>>> Klasė S2 (sąsaja): I2 = Žiniasklaida (numatytasis = 1)
...
>>> I klasė (sąsaja):
... Def metodas (): perdavimas
...
>>> C klasės (SchemaConfigured):
... padargai (S1, S2 I)
... Def metodas (si): perdavimas
...
C atvejų turi atributus atitinkančius schemų srityse. Jei jokių argumentų pateikiami konstruktorius, jie gauna lauko nutylėjimą kaip vertę. Teikiamos (raktažodžių!) Argumentai nepaisyti numatytuosius.
>>> C = C ()
>>> C.i1
0
>>> C.i2
1
>>> c = C (i1 = 5)
>>> C.i1
5
Konstruktorius atmeta vardinius argumentus nėra apibrėžta schema, siekiant greitai nustatyti rašybos klaidų. Tačiau tai trukdo super naudojimą klasių hierarchija už __init__ metodą. Galbūt ateityje versijos bus numatyti priemones kontroliuoti šį patikrinimą.
>>> C = C (x = 5)
Traceback (naujausia skambutis paskutinis):
& Nbsp; ...
Tipo klaida: ne schemos raktažodis argumentas: x
Jei lauke vertybės yra tinkama, C atvejų pateikti schemas (kaip patikrinti verify_schema). Priešingu atveju, verify_schema pakels išimtį. Šis pavyzdys rodo, taip pat elementaraus naudojimo verify_schema.
>>> Verify_schema (S1, c)
>>> C.i1 = Nėra
>>> Verify_schema (S1, c)
Traceback (naujausia skambutis paskutinis):
& Nbsp; ...
zope.schema.interfaces.WrongContainedType: [(I1 "RequiredMissing ())]
Mes galime sukurti redaguoti (ar kalbomis) formą mūsų objektų. Formų laukai yra automatiškai sukurtas mūsų schemų srityse. Formos klasės turi customize_fields būdą galite nepaisyti teikti pasirinktinius laukus ir / ar raštai.
Panašus funkcionalumą galima Zope 2 į Z2 subpackage.
>>> Iš zope.publisher.browser importo TestRequest
>>> Iš dm.zope.schema.form importo SchemaConfiguredEditForm
>>>
>>> Forma = SchemaConfiguredEditForm (C, TestRequest ())
>>> Sąrašas ([f .__ name__ už F form.form_fields])
["I1", "i2"]
Kas naujo , šioje laidoje:
- forma parama
- Zope 2 konstruktorius parama
Reikalavimai :
- Python
Komentarai nerastas