예제 #1
0
class Photo(db.Document):
    ''' Stores basic meta-data for file uploaded to server.
	Photos are served using file_name field.'''
    file_name = db.StringField(required=True)
    file_type = db.StringField()
    created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
    url = db.StringField()

    def __unicode__(self):

        return self.file_name

    def save(self, *args, **kwargs):
        if self.file_name:
            self.url = '/static/uploads' + self.file_name
            self.file_type = re.search(r'.*\.(.+)$', self.file_name,
                                       re.I).groups()[0]
        return super(Photo, self).save(*args, **kwargs)

    meta = {
        'indexes': [{
            'fields': ['$file_name', '$file_type'],
            'weights': {
                'file_name': 10,
                'file_type': 2
            }
        }]
    }
예제 #2
0
class Post(db.Document):
    ''' Post document; see fields below. '''
    title = db.StringField(max_length=120, required=True)
    slug = db.StringField()
    created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
    author = db.ReferenceField(User_)
    published = db.BooleanField(default=False)
    tags = db.ListField(db.StringField(max_length=30))
    index_background = db.ReferenceField(Photo)
    category = db.ReferenceField(Category)
    content = db.StringField(required=True)
    mark_delete = db.BooleanField(default=False)

    def save(self, *args, **kwargs):
        self.slug = re.sub('[^\w]+', '-', self.title.lower())
        return super(Post, self).save(*args, **kwargs)

    meta = {
        'indexes': [{
            'fields': ['$title', '$content'],
            'weights': {
                'title': 10,
                'content': 2
            }
        }]
    }
예제 #3
0
class User_(db.Document):
    email = db.StringField(required=True)
    password = db.StringField(max_length=40)
    first_name = db.StringField(max_length=40)
    last_name = db.StringField(max_length=40)

    def __unicode__(self):

        return self.first_name + ' ' + self.last_name
예제 #4
0
class Post(db.Document):
    title = db.StringField(max_length=150,required=True)
    date_posted = db.DateTimeField(default = datetime.utcnow())
    content = db.StringField()  
    image_file = db.StringField(max_length=50,required=True,default='post.jpg')
    author = db.ReferenceField(User,required=True)

    def __repr__(self):
        return f"Post('{self.title}','{self.date_posted}','{self.content}')"
예제 #5
0
class User_(db.Document):
    ''' Basic user model document. Represented by combo of 
	first and last name.'''
    email = db.StringField(required=True)
    password = db.StringField(max_length=40)
    first_name = db.StringField(max_length=40)
    last_name = db.StringField(max_length=40)

    def __unicode__(self):

        return self.first_name + ' ' + self.last_name
예제 #6
0
class Category(db.Document):
    ''' Category document referenced by Post. '''
    name = db.StringField(max_length=30)

    def __unicode__(self):

        return self.name
예제 #7
0
파일: models.py 프로젝트: kmvkrish/seminar
class Post(db.Document):
    created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
    title = db.StringField(max_length=255, required=True)
    slug = db.StringField(max_length=255, required=True)
    body = db.StringField(required=True)
    comments = db.ListField(db.EmbeddedDocumentField('Comment'))

    def get_absolute_url(self):
        return url_for('post', kwargs={"slug": self.slug})

    def __unicode__(self):
        return self.title

    meta = {
        'allow_inheritance': True,
        'indexes': ['-created_at', 'slug'],
        'ordering': ['-created_at']
    }
예제 #8
0
class User(db.Document, UserMixin):
    # query_class = UserModel
    email = db.StringField(max_length=30,required=True, primary_key=True)
    username = db.StringField(max_length=20,required=True)
    image_file = db.StringField(max_length=50,required=True,default='avata.jpg')
    password = db.StringField(max_length=100,required=True)
    
    def get_reset_token(self, expires_sec = 1800):
        s = Serializer(current_app.config['SECRET_KEY'], expires_sec)
        return s.dumps({'user_id': self.id}).decode('utf-8')

    @staticmethod
    def verify_reset_token(token):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            user_id = s.loads(token)['user_id']
        except:
            return None
        return User.objects.get(email=user_id)


    def __repr__(self):
        return f"User('{self.username}','{self.password}','{self.image_file}')"
예제 #9
0
class Image(Post):
    image_url = db.StringField(required=True, max_length=255)
예제 #10
0
class Video(Post):
    embed_code = db.StringField(required=True)
예제 #11
0
class BlogPost(Post):
    body = db.StringField(required=True)
예제 #12
0
class User(UserMixin, db.Document):
    meta = {"collection": "users"}
    username = db.StringField(required=True, max_length=32)
    email = db.StringField(required=True)
    password = db.StringField(required=True, max_length=255)
    profile_pic = db.StringField(default="default.png")
예제 #13
0
class Comment(db.Document):
    meta = {"collection": "comments"}
    author = db.ReferenceField(User)
    post = db.ReferenceField(Post)
    content = db.StringField(required=True, max_length=255)
    date = db.DateTimeField(required=True, default=datetime.utcnow)
예제 #14
0
class Comment(db.Document):
    post = db.ReferenceField(Post,required=True)
    author = db.ReferenceField(User,required=True)
    content = db.StringField(max_length=150,required=True)
    date_posted = db.DateTimeField(default = datetime.utcnow())
예제 #15
0
class Quote(Post):
    body = db.StringField(required=True)
    author = db.StringField(verbose_name="Autor",
                            required=True,
                            max_length=255)
예제 #16
0
class Comment(db.EmbeddedDocument):
    created_at = db.DateTimeField(default=datetime.datetime.now, required=True)
    body = db.StringField(verbose_name="Comentario", required=True)
    author = db.StringField(verbose_name="Nome", max_length=255, required=True)
예제 #17
0
class Comment(db.EmbeddedDocument):
    create_time = db.DateTimeField(default=datetime.datetime.now,
                                   required=True)
    body = db.StringField(verbose_name='Comnent', required=True)
    author = db.StringField(verbose_name='Name', max_length=255)