def createAndAdd(self, data):
shopcatalog = Shopcatalog()
shopcatalog.name = data['name']
self.context[shopcatalog.name] = shopcatalog
sm = getSiteManager()
ii = sm.queryUtility(IIntIds)
ii.register(shopcatalog)
self.request.response.redirect('.')
def createAndAdd(self, data):
shopcatalog = Shopcatalog()
shopcatalog.name = data['name']
self.context[shopcatalog.name] = shopcatalog
sm = getSiteManager()
ii = sm.queryUtility(IIntIds)
ii.register(shopcatalog)
self.request.response.redirect('.')
sm = getSiteManager()
ii = sm.queryUtility(IIntIds)
ii.register(shopcatalog)
ii = sm.queryUtility(interface=IIntIds, context = self.context)
sm = getSiteManager()
if sm.queryUtility(IIntIds) is None:
intids = IntIds()
sm[u'intids'] = intids
sm.registerUtility(intids, IIntIds)
return 'done'
else: return 'already exists'
ii.register(shopcatalog)
@adapter(ILocation, IObjectAddedEvent)
def addIntIdSubscriber(ob, event):
"""A subscriber to ObjectAddedEvent
Registers the object added in all unique id utilities and fires
an event for the catalogs.
"""
utilities = tuple(getAllUtilitiesRegisteredFor(IIntIds))
if utilities: # assert that there are any utilites
key = IKeyReference(ob, None)
# Register only objects that adapt to key reference
if key is not None:
idmap = {}
for utility in utilities:
idmap[utility] = utility.register(key)
# Notify the catalogs that this object was added.
notify(IntIdAddedEvent(ob, event, idmap))
from zope.component import getSiteManager
from zope.site import LocalSiteManager
from zope.intid import IntIds, IIntIds
from zope.lifecycleevent import notify, ObjectAddedEvent
from zope.component.interfaces import IPossibleSite
from zope.interface import implements
from zope.site.folder import Folder
import transaction
obj = root[u'folder']
sm = obj.getSiteManager()
intids=IntIds()
sm[u'intids']=intids
sm.registerUtility(intids, IIntIds)
obj[u'f1']=Folder()
ii = sm.getUtility(IIntIds)
ii.register(obj[u'f1'])
transaction.commit()
sm = getSiteManager()
if sm.queryUtility(IIntIds) is None:
intids = IntIds()
sm[u'intids'] = intids
sm.registerUtility(intids, IIntIds)
sm = getSiteManager()
intids = IntIds()
sm[u'intids'] = intids
sm = getSiteManager(self.context)
if sm.queryUtility(IIntIds, u'intids') is None:
intids = IntIds()
sm[u'intids'] = intids
sm.registerUtility(intids, IIntIds, u'intids')
self.request.form['result']=u'установлено'
else: self.request.form['result']=u'уже установлено'
добавление какого-либо объекта (Object)
...
object = Object()
self.context[name] = object
sm = getSiteManager(self.context)
ii = sm.getUtility(IIntIds, u'intids')
ii.register(self.context[name])
>>> sm=getSiteManager(root)
>>> ii = sm.getUtility(IIntIds)
>>> ii
<zope.intid.Intids object at 0x033184F0>
>>> ii = sm.getUtility(IItnIds, u'intids')
<zope.intid.Intids object at 0x0340A830>
sm = getSiteManager()
if sm.queryUtility(IIntIds) is None:
intids = IntIds()
sm[u'intids'] = intids
sm.registerUtility(intids, IIntIds, u'intids')
sm = getSiteManager()
if sm.queryUtility(IIntIds) is None:
intids = IntIds()
sm[u'intids'] = intids
sm.registerUtility(sm[u'intids'], IIntIds, u'intids')
<include package="zope.intid" />
sm = getSiteManager(self.context)
if u'intids' not in sm:
intids = IntIds()
notify(ObjectCreatedEvent(intids))
sm[u'intids'] = intids
sm.registerUtility(intids, IIntIds)
self.request.form['result']=u'установлено'
else: self.request.form['result']=u'уже установлено'