dolmen.relations

Yazılım ekran görüntüsü:
dolmen.relations
Yazılım detaylar:
Versiyon: 0.5
Qayıt: 11 May 15
Geliştirici: Souheil Chelfouh
Lisans: Ücretsiz
Popülerlik: 18

Rating: 1.5/5 (Total Votes: 2)

dolmen.relations nesneler arasında bağımsız ilişkilerin basit ve kolay bir uygulama sağlayan zc.relation üzerinde ince bir tabaka vardır.
Başlarken
Pakedin özelliklerini göstermek amacıyla, öncelikle aklı başında ortamı kurmak:
>>> Zope ithalat bileşeninden
>>> Zope.container.btree ithalat BTreeContainer gelen
>>> Sm = component.getGlobalSiteManager ()
>>> Sürü = GetRootFolder () ['Sürü'] = BTreeContainer ()
İlişkiler kataloğu
dolmen.relations ilişkileri kayıt ve onları bulma sorumlu RelationCatalog adında bir bileşeni sağlar:
>>> Dolmen.relations RelationCatalog, iCatalog ithal gelen
>>> Sm.registerUtility (RelationCatalog (), iCatalog)
İlişkiler konteyner
Ilişkileri saklamak ve gerektiğinde olayları tetiklemek için, dolmen.relations bir btree kap sağlar:
>>> Dolmen.relations ithalat RelationsContainer gelen
>>> Ilişkileri = Sürü ['_ ilişkileri'] = RelationsContainer ()
İçerik
Şimdi, biz Başlamak için bazı içerik gerekir. Testler modülü burada kullanmak için gidiyoruz bir Mamut kalıcı bir nesne tanımlar:
>>> Dolmen.relations.tests Mammoth ithal gelen
>>> Manfred = sürüsü ['manfred'] = Mammoth ()
>>> Gunther = sürüsü ['gunther'] = Mammoth ()
Bizim nesneler devam edilecek ve bir int kimliği verilecek emin olmak için, taahhüt:
>>> Import işlemi
>>> Transaction.commit ()
İlişkiler
dolmen.relations tarafından önerilen ilişkiler "A B" tipi vardır. Onlar bir hedef nesnesi olan bir kaynağı nesnesi bağlamak için izin verir. Testler amaçlar için, kaynak ve hedef olarak kullanılacak iki Mammoth nesneler oluşturmak için gidiyoruz:
>>> Dolmen.relations alma değerleri, herhangi bir
>>> Zope.intid.interfaces ithalat IIntIds gelen
>>> Kimlikleri = component.getUtility (IIntIds)
>>> Rcatalog = component.getUtility (iCatalog)
>>> Gunther_id = ids.getId (gunther)
>>> Manfred_id = ids.getId (manfred)
Basit ilişki
Birinci ve simpliest ilişki türü RelationValue olduğunu. Bu ilişki, bir kaynak kimliği ve hedef kimliği ile oluşturulur:
>>> Ilişkiler ["basit"] = values.RelationValue (gunther_id, manfred_id)
Hedef ve / veya kaynak id vererek ilişkilerini sorgulayabilirsiniz:
>>> Bulundu = listesi (rcatalog.findRelations ({'target_id': manfred_id}))
>>> Bulundu
[]
ilişki kaynağı ya da hedefi çözme adanmış özelliklere sahiptir:
>>> Ilişki = found.pop ()
>>> Ilişkisi

>>> Relation.source

>>> Relation.target

Takip edilen ilişki
ilişkinin ikinci tip TaggedRelationValue olduğunu. Bu bize bir kaynak hedef çift, Unicode dizeleri bir liste olarak etiketlerin listesine eklemek için izin verir:
>>> Ilişkiler ["etiketli"] = values.TaggedRelationValue (
... Gunther_id, manfred_id, etiketleri = [u'grok ', u'dolmen'])
ilişki hala temel bir sorgu ile alınabilir:
>>> Bulundu = listesi (rcatalog.findRelations ({'target_id': manfred_id}))
>>> Bulundu
[<... En dolmen.relations.values.RelationValue object> ]
Ayrıca, şimdi, bir etiket değerini kullanarak sorgulanabilir:
>>> Bulundu = listesi (rcatalog.findRelations ({'etiketi': Herhangi bir ('grok')}))
>>> Bulundu
[]
>>> Bulundu = listesi (rcatalog.findRelations ({'etiketi': Herhangi bir ('drupal')}))
>>> Bulundu
[]
Stateful ilişki
ilişkinin üçüncü tip StatefulRelationValue olduğunu. Bir unicode dize olarak kaynak hedef çift, devlet bilgilerine ekliyor:
>>> Ilişkiler ["durum bilgisi"] = values.StatefulRelationValue (
... Gunther_id, manfred_id, devlet = u "özel")
ilişki hala temel bir sorgu ile alınabilir:
>>> Bulundu = listesi (rcatalog.findRelations ({'target_id': manfred_id}))
>>> Bulundu
[, ]
Ayrıca, şimdi, devlet dizesi kullanarak sorgulanabilir:
>>> Bulundu = listesi (rcatalog.findRelations ({'devlet': Herhangi bir ('özel')}))
>>> Bulundu
[]
>>> Bulundu = listesi (rcatalog.findRelations ({'devlet': Herhangi bir ('public')}))
>>> Bulundu
[]
Etkinlikler
Bir nesne silindiğinde zaman, kaynak veya hedef olarak kullanarak ilişkileri de silinir:
>>> Del Sürü ['manfred']
>>> Print listesi (Sürü ['_ ilişkileri']. Tuşları ())
[]
>>> Bulundu = listesi (rcatalog.findRelations ({'target_id': manfred_id}))
>>> Bulundu
[]

Yeni Bu sürümde Nedir:

  • ID kaldırılmış zaman intids bir hata yakalamak. Bu durumda Yok'u dönün.

Gereksinimleri :

  • Python

Geliştirici Diğer yazılım Souheil Chelfouh

Yorumlar dolmen.relations

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!