[Grok-dev] object relationships

Jeroen Michiel jmichiel at yahoo.com
Thu Mar 5 07:20:09 EST 2009


My how-to is getting close to being finished, however, I'm running into some
trouble...
I'm trying to hide the relation inside the implementation by doing this:

class IBuddy(Interface):
    name = schema.TextLine(title=u'The Name')
    buddy = schema.Choice(title=u'My Buddy', required=False, source =
BuddySource())

class Buddy(grok.Model):
    grok.implements(IBuddy, IHasRelations)
    buddy_rel = Relation()
    
    def setBuddy(self, obj):
        intids = component.getUtility(IIntIds)
        self.buddy_rel = RelationValue(intids.queryId(obj))
        print 'Buddy Set: %s' % self.buddy_rel
    def getBuddy(self):
        return self.buddy_rel.to_object
    
    buddy=property(getBuddy, setBuddy)

as opposed to this:
class IBuddy(Interface, IHasRelations):
    name = schema.TextLine(title=u'The Name')
    buddy = RelationChoice(title=u'My Buddy', required=False, source =
BuddySource())

class Buddy(grok.Model):
    grok.implements(IBuddy)

However, with the relation now being part of the implementation, the
_potential_relations function in z3c.relationfield.event no longer returns
the relations as the getFields function doesn't find a field providing
IRelation. It's no longer inside an interface...

I guess I will first have to subclass the interface and then implement that
one?
-- 
View this message in context: http://www.nabble.com/object-relationships-tp21706997p22350542.html
Sent from the Grok mailing list archive at Nabble.com.



More information about the Grok-dev mailing list