Пример #1
0
    def comments(cls):
        #: make the meta data of the subject class
        arguments = dict(cls.__commentable__)
        arguments['subject_class'] = cls

        #: create a comment class
        class_name = "%sComment" % cls.__name__
        class_bases = (BaseComment,)
        class_members = {'__commentable__': arguments}
        comment_class = type(class_name, class_bases, class_members)
        comment_class.__doc__ = "The comment of the %s." % class_name

        #: assign the comment class to the subject class
        setattr(cls, class_name, comment_class)
        setattr(cls, "comment_class", comment_class)

        #: create and return the relationship to the comment
        return db.relationship(comment_class, lazy="dynamic",
                backref=db.backref("subject", lazy="joined", uselist=False))
Пример #2
0
 def owner(cls):
     owner_class = cls.__commentable__['owner_class']
     return db.relationship(owner_class, lazy="joined", uselist=False)