[Zope3-Users] vocabulary of object-references

Markus Leist ml_zope3_dev at ikom-online.de
Mon Aug 22 11:36:27 EDT 2005


Hi all,

I have build an List of Choices and it works well:
in interface:
    hostlist = List(
        title=_(u"Host List"),
        description=_(u"Host List"),
        value_type = Choice(
            title=_(u"Host"),
            description=_(u"Host"),
            required = True,
            vocabulary = "IkGroupHosts"),
        required=False)

vocabulary:
def HostsVocabulary(context):
    dynHostList = []
    for (oid, oobj) in iid.items():
        if IIkHost.providedBy(oobj.object):  
            dynHostList.append( SimpleTerm( oobj.object.getIkTitle(), oobj.object.getIkTitle()))
    return SimpleVocabulary( dynHostList)  

object has string-result:
hostlist  	[u'titan', u'radon']

now i want to store references in (my new) lIst  by vocabulary:

def HostsVocabulary(context):
    dynHostList = []
    iid = zapi.getUtility( IIntIds, 'iid')
    for (oid, oobj) in iid.items():
        if IIkHost.providedBy(oobj.object):  
            dynHostList.append( SimpleTerm( KeyReferenceToPersistent(oobj.object), oobj.object.getIkTitle()))
    return SimpleVocabulary( dynHostList)  

when commit the form:
[...]
  File "/opt/ikom/Zope3/src/zope/schema/_bootstrapfields.py", line 133, in validate
    if value == self.missing_value:
  File "/opt/ikom/Zope3/src/zope/app/keyreference/persistent.py", line 56, in __cmp__
    if self.key_type_id == other.key_type_id:
AttributeError: 'NoneType' object has no attribute 'key_type_id'


Any idea or other way of storing references in my Hostlist?

Markus


More information about the Zope3-users mailing list