예제 #1
0
class Reply(Document):
    content = fields.StringField(verbose_name=u'内容')
    creator = fields.GenericReferenceField()  #作者
    target = fields.GenericReferenceField()  #回复目标
    creat_time = fields.DateTimeField()  #发布时间
    is_active = fields.BooleanField(verbose_name=u'可见')

    def get_reply(self):  #得到回复列表
        return Reply.objects(target=self)
예제 #2
0
 class Person(Document):
     name = f.StringField()
     age = f.IntField(default=30)
     coffee = f.IntField(db_field='s', default=5)
     fav_nums = f.ListField(f.IntField())
     userid = f.StringField()
     friends = f.ListField(f.ReferenceField('Person'))
     wildcard = f.ListField(f.GenericReferenceField())
     best_friend = f.ReferenceField('Person')
     best_blob = f.GenericReferenceField()
     thought = f.EmbeddedDocumentField('Thought')
     other_thoughts = f.ListField(f.EmbeddedDocumentField('Thought'))
     other_attrs = f.DictField()
예제 #3
0
class Activity(Document):
    url_number = fields.IntField()
    name = fields.StringField(verbose_name=u'活动名称')
    detail = fields.StringField(verbose_name=u'活动详情')
    creator = fields.GenericReferenceField()  # 发起社团

    start_time = fields.DateTimeField()
    finish_time = fields.DateTimeField()
    place = fields.StringField(verbose_name=u'活动地点')
    max_student = fields.IntField()  # 人数上限

    pay = fields.IntField(verbose_name=u'人均花费')

    who_likes = fields.ListField(
        fields.ReferenceField(Student, reverse_delete_rule=PULL))  # 喜欢活动的人
    who_entered = fields.ListField(
        fields.ReferenceField(Student, reverse_delete_rule=PULL))  # 参加这个活动的人
    clicks = fields.IntField()  # 点击数
    is_active = fields.BooleanField()

    def description(self):
        return self.creator.corporation.name + "发起了" + self.name

    def is_started(self):  # 判断是否已经开始
        if self.finish_time < datetime.datetime.now():
            return True
        else:
            return False

    def get_reply(self):
        from reply.models import Reply
        return Reply.objects(target=self)
예제 #4
0
class Topic(Document):
    title = fields.StringField(verbose_name=u'标题')
    content = fields.StringField(verbose_name=u'内容')
    url_number = fields.IntField()
    
    creator = fields.GenericReferenceField()  # 发布人S_G_Card, reverse_delete_rule=DO_NOTHING
    creat_time = fields.DateTimeField()  # 发布时间
    
    update_time = fields.DateTimeField()  # 更新时间
    update_author = fields.ReferenceField(Student, reverse_delete_rule=DO_NOTHING)  #最后回复作者
    
    clicks = fields.IntField()  #浏览数
    
    is_active = fields.BooleanField(verbose_name=u'可见')
    is_locked = fields.BooleanField(verbose_name=u'锁帖')
    is_top = fields.BooleanField(verbose_name=u'置顶')
    
    def get_reply(self):
        from reply.models import Reply
        return Reply.objects(target=self)
class GenericReferencingDoc(Document):
    ref = fields.GenericReferenceField()
class RefFieldsDoc(Document):
    ref = fields.ReferenceField(ReferencedDoc)
    dbref = fields.ReferenceField(ReferencedDoc, dbref=True)
    cached = fields.CachedReferenceField(ReferencedDoc)
    generic = fields.GenericReferenceField()
    ref_list = fields.ListField(fields.ReferenceField(ReferencedDoc))
class GenericReferencingModel(Document):
    generic = me_fields.GenericReferenceField()
class RefFieldsModel(Document):
    ref = me_fields.ReferenceField(ReferencedModel)
    dbref = me_fields.ReferenceField(ReferencedModel, dbref=True)
    cached = me_fields.CachedReferenceField(ReferencedModel)
    generic = me_fields.GenericReferenceField()
예제 #9
0
class Broadcast(EmbeddedDocument):
    object = fields.GenericReferenceField()
    is_readed = fields.BooleanField()