示例#1
0
class EthContact(db.Model):
    __tablename__ = 'eth_contact'
    address = db.Column(db.String(42), primary_key=True)
    name = db.Column(db.String(255), index=True)
    desc = db.Column(db.String(255))
    email = db.Column(db.String(255), index=True)
    phone = db.Column(db.String(255), index=True)
    eth_balance = db.Column(db.Float(), default=0)
    ogn_balance = db.Column(db.Float(), default=0)
    dai_balance = db.Column(db.Float(), default=0)
    investor = db.Column(db.Boolean())
    presale_interest = db.Column(db.Boolean())
    dapp_user = db.Column(db.Boolean())
    employee = db.Column(db.Boolean())
    exchange = db.Column(db.Boolean())
    company_wallet = db.Column(db.Boolean())
    investor_airdrop = db.Column(db.Boolean())
    token_count = db.Column(db.Integer())
    transaction_count = db.Column(db.Integer())
    tokens = db.Column(JSONB)
    last_updated = db.Column(db.DateTime(),
                             server_default=db.func.now(),
                             onupdate=db.func.now())
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=db.func.now())
    country_code = db.Column(db.String(2))

    def __str__(self):
        return '%s' % (self.name)
示例#2
0
class User(db.Model, MainModel):
    __tablename__ = 'user'
    __table_args__ = {'comment': '用户'}
    # __permission__ = {}
    username = db.Column(db.String(20), unique=True,
                         nullable=False, comment='用户名', )
    password_hash = db.Column(db.String(255), nullable=False, comment='密码')
    fullname = db.Column(db.String(40), nullable=False, comment='真实姓名', )
    phone = db.Column(db.String(11), nullable=False, comment='电话', )
    create_at = db.Column(db.DateTime(), nullable=False, comment='创建时间', )
    update_at = db.Column(db.DateTime(), nullable=False, comment='更新时间', )
    status = db.Column(db.Boolean(), nullable=False, comment='账户状态', )
    head_img = db.Column(db.LargeBinary(65536), nullable=True, comment="头像", )  # max16M
    # LargeBinary(16777216)	longblob	str	二进制,max32M

    permissions = db.relationship(
        'Permission', secondary=user_permission)  # 操作权限
    roles = db.relationship('Role', secondary=user_role)  # 角色

    @property
    def password(self):
        raise AttributeError("password can't to read!")

    @password.setter
    def password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):  # 哈希对比
        """
        对比密码
        :param hash: 哈希密码
        :param password: 要与哈希比较的纯文本密码。
        :return:
        """
        return check_password_hash(self.password_hash, password)
示例#3
0
class Category(db.Model):
    __tablename__ = 'category'

    id = db.Column(db.String(36),
                   primary_key=True,
                   default=lambda: str(uuid4()))
    name = db.Column(db.String(80))
    profit_percent = db.Column(db.Float(2), default=0.0)
    created_at = db.Column(db.DateTime(timezone=True), default=func.now())
    updated_at = db.Column(db.DateTime(timezone=True), onupdate=func.now())
    is_active = db.Column(db.Boolean, unique=False, default=True)
    deleted_at = db.Column(db.DateTime(timezone=True), default=None)
    product_line = db.relationship('ProductLine', backref='product_line')

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        for keys in kwargs:
            if keys == 'id' or keys == 'name':
                if kwargs[keys] is None or kwargs[keys] == '':
                    raise NullOrNoneValueException(f'The {keys} is empty')

    def serialize(self) -> dict:
        return {
            "id": self.id,
            "name": self.name,
            "profit_percent": self.profit_percent,
            "created_at": self.created_at,
            "updated_at": self.updated_at,
            "is_active": self.is_active,
            "deleted_at": self.deleted_at
        }
示例#4
0
class Purchase(db.Model):
    contract_address = db.Column(db.String(255), primary_key=True)
    buyer_address = db.Column(db.String(255), index=True)
    listing_address = db.Column(db.String(255),
                                db.ForeignKey('listing.contract_address'),
                                nullable=False)
    stage = db.Column(db.Integer())
    created_at = db.Column(db.DateTime(timezone=True))
    buyer_timeout = db.Column(db.DateTime(timezone=True))
示例#5
0
class Identity(db.Model):
    eth_address = db.Column(db.Numeric(precision=50, scale=0),
                            primary_key=True)
    phone = db.Column(db.String(20), index=True)
    verified = db.Column(db.Boolean())
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=func.now())
    updated_at = db.Column(db.DateTime(timezone=True),
                           server_default=func.now(),
                           onupdate=func.now())
class EthNotificationEndpoint(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    eth_address = db.Column(db.String(255), index=True)
    device_token = db.Column(db.String(255), index=True)
    type = db.Column(db.Enum(EthNotificationTypes))
    active = db.Column(db.Boolean())
    verified = db.Column(db.Boolean())
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=func.now())
    expires_at = db.Column(db.DateTime(timezone=True))
示例#7
0
class VerificationCode(db.Model):
    phone = db.Column(db.String(20), index=True)
    email = db.Column(db.String(256), index=True)
    code = db.Column(db.String(10), primary_key=True)
    expires_at = db.Column(db.DateTime(timezone=True))
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=func.now())
    updated_at = db.Column(db.DateTime(timezone=True),
                           server_default=func.now(),
                           onupdate=func.now())
示例#8
0
class VerificationCode(db.Model):
    eth_address = db.Column(db.Numeric(precision=50, scale=0),
                            primary_key=True)
    phone = db.Column(db.String(20), index=True)
    code = db.Column(db.String(10))
    expires_at = db.Column(db.DateTime(timezone=True))
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=func.now())
    updated_at = db.Column(db.DateTime(timezone=True),
                           server_default=func.now(),
                           onupdate=func.now())
示例#9
0
class CirculatingSupply(db.Model):
    __tablename__ = 'circulating_supply'
    id = db.Column(db.Integer, primary_key=True)
    supply_amount = db.Column(db.Float(), default=0)
    snapshot_date = db.Column(db.DateTime(timezone=True),
                              server_default=db.func.now())
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=db.func.now())

    def __str__(self):
        return '%s' % (self.name)
示例#10
0
class User(db.Model):
    login = db.Column(db.String(8), primary_key=True)
    email = db.Column(db.String(100))
    date_join = db.Column(db.DateTime(), default=datetime.datetime.utcnow())
    last_login = db.Column(db.DateTime(), default=datetime.datetime.utcnow())

    collections = db.relationship('Collection', backref='user', lazy='dynamic')

    def __init__(self, login):
        self.login = login
        self.email = "*****@*****.**" % login

    def __repr__(self):
        return '<User %r>' % self.login
示例#11
0
class Listing(db.Model):
    contract_address = db.Column(db.String(255), primary_key=True)
    owner_address = db.Column(db.String(255), index=True)
    registry_id = db.Column(db.Integer())

    price = db.Column(db.Integer())
    units = db.Column(db.Integer())
    expired = db.Column(db.Boolean())

    ipfs_hash = db.Column(db.String(255))
    ipfs_data = db.Column(db.JSON())

    created_at = db.Column(db.DateTime(timezone=True))
    expires_at = db.Column(db.DateTime(timezone=True))
示例#12
0
class Competition(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), nullable=False)
    start_on = db.Column(db.DateTime())
    end_on = db.Column(db.DateTime())
    groundtruth = db.Column(db.String(500), nullable=False)
    submissions = db.relationship('Submission',
                                  backref='competition',
                                  lazy='dynamic')

    def __repr__(self):
        return self.name

    def __unicode__(self):
        return self.name
示例#13
0
class User(db.Model, UserMixin):
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    username = db.Column(db.String(255))
    password = db.Column(db.String(255))
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())
    last_login_ip = db.Column(db.String(100))
    current_login_ip = db.Column(db.String(100))
    login_count = db.Column(db.Integer)
    active = db.Column(db.Boolean())
    fs_uniquifier = db.Column(db.String(255), unique=True, nullable=False)
    confirmed_at = db.Column(db.DateTime())
    roles = db.relationship('Role', secondary='roles_users', backref=db.backref('users', lazy='dynamic'))
示例#14
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    first_name = db.Column(db.String(255))
    last_name = db.Column(db.String(255))
    phone_number = db.Column(db.String(50), nullable=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    verification_code = db.Column(db.String(50), nullable=True)
    active = db.Column(db.Boolean(), default=False)
    has_verified_account = db.Column(db.Boolean(), default=False)
    confirmed_at = db.Column(db.DateTime())
    roles = db.relationship('Role',
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

    def generate_verification_code(self):
        self.verification_code = random.randint(100000, 999999)

    def __str__(self):
        if self.first_name and self.last_name:
            return "{} {}".format(self.first_name, self.last_name)
        return self.email

    @property
    def full_name(self):
        if self.first_name and self.last_name:
            return f'{self.first_name} {self.last_name}'
        return ''
示例#15
0
class User(db.Model):
    __tablename__ = 'User'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(20), unique=True, nullable=False)
    password = db.Column(db.String(128), nullable=False)
    email = db.Column(db.String(60), nullable=False)
    registered = db.Column(db.DateTime(), nullable=False)
    idRole = db.Column(db.Integer, db.ForeignKey('UserRole.id'))
    role = db.relationship("UserRole", foreign_keys=[idRole], cascade="merge")
    idStatus = db.Column(db.Integer, db.ForeignKey('UserStatus.id'))
    status = db.relationship("UserStatus", foreign_keys=[idStatus], cascade="merge")
    devices = db.relationship("Device", uselist=True, backref=db.backref('user_device'),
                               cascade="save-update, merge, delete")
    aws_accounts = db.relationship("AwsAccount", uselist=True, backref=db.backref('user_account'),
                                   cascade="save-update, merge, delete")

    def __init__(self, username=None, password='', email=None, role_id=None, status_id=None, registered=None):
        self.username = username
        self.password = pwd_context.encrypt(password)
        self.email = email
        self.idRole = role_id
        self.idStatus = status_id
        self.registered = registered
        self.devices = []

    def __repr__(self):
        return '<User {0}, {1}>'.format(self.username, self.email)

    def verify_password(self, password):
        return pwd_context.verify(password, self.password)
示例#16
0
class Actor(db.Model):
    __tablename__ = 'actor'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=True)
    time = db.Column(db.DateTime())
    movies = db.relationship("Movie", secondary=association_table, back_populates="actors")
示例#17
0
class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.String(36),
                   primary_key=True,
                   default=lambda: str(uuid.uuid4()))
    username = db.Column(db.String(20), nullable=False)
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=func.now())
    profile = db.relationship('Profile', back_populates='user', uselist=False)
    posts = db.relationship(Post, back_populates='user')

    def serialize(self, detail=False):
        response = {
            'id': self.id,
            'username': self.username,
            'created_at': self.created_at
        }

        posts = []
        if self.posts:
            posts = [post.serialize() for post in self.posts]

        profile = None
        if self.profile:
            profile = self.profile.serialize()

        if detail:
            response.update({'profile': profile, 'posts': posts})

        return response
示例#18
0
class User(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), unique=True)
    password = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    roles = db.relationship('Role', secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())
    last_login_ip = db.Column(db.String(255))
    current_login_ip = db.Column(db.String(255))
    login_count = db.Column(db.Integer)

    def __repr__(self):
        return '<models.User[email=%s]>' % self.email
class UserExternalService(db.Model, UserMixin):
    id = db.Column(db.Integer, primary_key=True)

    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
    user = db.relationship(User, backref="external_services")
    service = db.Column(db.String,
                        nullable=False)  # UserExternalServiceEnum. _ .value
    service_user_id = db.Column(db.String, nullable=False)

    auth_info = db.Column(db.JSON)  # e.g. access token
    user_info = db.Column(db.JSON)

    last_used_at = db.Column(db.DateTime(),
                             default=datetime.utcnow,
                             nullable=False)

    __table_args__ = (
        UniqueConstraint("user_id",
                         "service",
                         name="user_external_service_user_id_service_uniq"),
        UniqueConstraint(
            "service",
            "service_user_id",
            name="user_external_service_service_service_user_id_uniq",
        ),
    )
示例#20
0
class DonationModel(db.Model):
    __tablename__ = "donations"

    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey("users.id"), nullable=False)
    attendance_id = db.Column(db.Integer,
                              db.ForeignKey("attendances.id"),
                              nullable=False)
    transfer_id = db.Column(db.Integer,
                            db.ForeignKey("transfers.id"),
                            nullable=True)
    year = db.Column(db.Integer, nullable=False)
    month = db.Column(
        db.Enum("january",
                "february",
                "march",
                "april",
                "may",
                "june",
                "july",
                "august",
                "september",
                "october",
                "november",
                "december",
                name="month"))
    mmk_amount = db.Column(db.Float())
    jpy_amount = db.Column(db.Float())
    paid_at = db.Column(db.DateTime(), nullable=True)

    def __init__(self, user_id: int, attendance_id: int, transfer_id: int,
                 year: int, month: str, mmk_amount: float, jpy_amount: float,
                 paid_at: datetime) -> None:
        self.user_id = user_id
        self.attendance_id = attendance_id
        self.transfer_id = transfer_id
        self.year = year
        self.month = month
        self.mmk_amount = mmk_amount
        self.jpy_amount = jpy_amount
        self.paid_at = paid_at

    def __repr__(self):
        return f"<Donation Records for user_id {self.user_id}>"

    @staticmethod
    def create_donation(new_donation) -> bool:
        """
        create  new_donation
        :param new_donation:
        :return: bool
        """
        try:
            db.session.add(new_donation)
            db.session.commit()
            return True
        except SQLAlchemyError as e:
            # to put log
            return False
示例#21
0
class LodgingBusiness(LocalBusiness):

    # amenityFeature, audience, availableLanguage, checkinTime, checkoutTime, petsAllowed, starRating
    license_number = db.Column('license_number', db.String(1000))
    license_expiry = db.Column('license_expiry', db.DateTime())

    last_inspection = db.Column('last_inspection', db.DateTime())
    status_code = db.Column('status_code', db.String(1000))

    checkinTime = db.Column('checkinTime', db.DateTime())
    checkoutTime = db.Column('checkoutTime', db.DateTime())
    rooms = db.Column('rooms', db.Integer())

    __mapper_args__ = {'polymorphic_identity': 'lodgingbusiness'}
    id = db.Column(GUID(),
                   db.ForeignKey('local_business.id'),
                   primary_key=True)
示例#22
0
class TokenTransaction(db.Model):
    __tablename__ = 'token_transaction'
    tx_hash = db.Column(db.String(66), primary_key=True)
    from_address = db.Column(db.String(42), index=True)
    to_address = db.Column(db.String(42), index=True)
    amount = db.Column(db.Float())
    block_number = db.Column(db.Integer())
    notification_sent = db.Column(db.Boolean())
    timestamp = db.Column(db.DateTime(timezone=True))
    last_updated = db.Column(db.DateTime(),
                             server_default=db.func.now(),
                             onupdate=db.func.now())
    created_at = db.Column(db.DateTime(timezone=True),
                           server_default=db.func.now())

    def __str__(self):
        return '%s' % (self.name)
示例#23
0
class Echange(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    user1 = db.Column(db.String(8), db.ForeignKey('user.login'))
    user2 = db.Column(db.String(8), db.ForeignKey('user.login'))
    #User1 donne ecocup1
    ecocup1 = db.Column(db.Integer(), db.ForeignKey('ecocup.id'))
    ecocup2 = db.Column(db.Integer(), db.ForeignKey('ecocup.id'))
    date_execution = db.Column(db.DateTime(), default=None)
    date_conf1 = db.Column(db.DateTime(), default=None)
    date_conf2 = db.Column(db.DateTime(), default=None)
    date_cancelled = db.Column(db.DateTime(), default=None)
    canceller = db.Column(db.String(8), default=None)
    date_creation = db.Column(db.DateTime(),
                              default=datetime.datetime.utcnow())

    def __repr__(self):
        return '<Echange %r>' % self.id
示例#24
0
class Event(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(200), nullable=False)
    description = db.Column(db.String(2000))
    photo = db.Column(db.String(2000))
    funding_start_date = db.Column(db.DateTime(), nullable=False)
    funding_end_date = db.Column(db.DateTime(), nullable=False)
    creation_date = db.Column(db.DateTime(), nullable=False)
    goal = db.Column(db.Float)
    long = db.Column(db.Numeric(11, 8))
    lat = db.Column(db.Numeric(11, 8))
    stars = db.Column(db.Float)
    event_start_date = db.Column(db.DateTime(), nullable=False)
    event_end_date = db.Column(db.DateTime())
    location = db.Column(db.String(200), nullable=False)
    user_creator = db.Column(db.Integer,
                             db.ForeignKey('user.id'),
                             nullable=False)
    tags = db.relationship('Tag',
                           secondary=tags,
                           lazy='subquery',
                           backref=db.backref('tags', lazy=True))
    watchers = db.relationship("User", secondary=watchers, backref="watching")
    backers = db.relationship("Funded", back_populates="backers")
    votes = db.relationship("VotedTest", back_populates="votes")

    def __init__(self, name, description, funding_start_date, funding_end_date,
                 goal, event_start_date, event_end_date, location,
                 user_creator, lat, long, photo):
        self.name = name
        self.description = description
        self.funding_start_date = funding_start_date
        self.funding_end_date = funding_end_date
        self.creation_date = datetime.datetime.now()
        self.goal = goal
        self.event_start_date = event_start_date
        self.event_end_date = event_end_date
        self.location = location
        self.user_creator = user_creator
        self.lat = lat
        self.long = long
        self.photo = photo

    def __repr__(self):
        return '<Event %r>' % self.name
示例#25
0
class StockMonitor(db.Model):
    '''
    {
        "id": 2,
        "stock_id": "sz000069",
        "threshold_value": "2.78",
        "threshold_type": "percent",
        "status": "0",
        "user_id": "default",
        "over_limit": 1,
        "over_count": 0,
        "monitoring_type": "high"
    }
    '''
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    stock_id = db.Column(db.String(50))
    # high low
    monitoring_type = db.Column(db.String(50))
    threshold_value = db.Column(db.String(50))
    # absolute percent
    threshold_type = db.Column(db.String(50))
    # 0 1 2 3 4
    status = db.Column(db.String(50))
    # the notification limit times after the value over
    over_limit = db.Column(db.String(50))
    over_count = db.Column(db.Integer, default=0)
    user_id = db.Column(db.String(50))
    time_stamp = db.Column(db.DateTime(timezone=True),
                           default=datetime.datetime.now,
                           onupdate=datetime.datetime.now)

    __table_args__ = (UniqueConstraint('stock_id', 'user_id',
                                       'monitoring_type', 'threshold_value'), )

    def __json__(self):
        return {
            'id': self.id,
            'stock_id': self.stock_id,
            'threshold_value': self.threshold_value,
            'threshold_type': self.threshold_type,
            'status': self.status,
            'user_id': self.user_id,
            'over_limit': self.over_limit,
            'over_count': self.over_count,
            'monitoring_type': self.monitoring_type,
            'time_stamp': self.time_stamp.strftime(r"%Y-%m-%d %H:%M:%S"),
        }

    @staticmethod
    def of(json):
        return StockMonitor(stock_id=json['stock_id'],
                            monitoring_type=json['monitoring_type'],
                            threshold_value=json['threshold_value'],
                            threshold_type=json['threshold_type'],
                            status=json['status'],
                            user_id=json['user_id'],
                            over_limit=json['over_limit'])
示例#26
0
class EmailList(db.Model):
	__tablename__ = 'email_list'

	email = db.Column(db.String(255), primary_key=True, autoincrement=False)
	unsubscribed = db.Column(db.Boolean())
	created_at = db.Column(db.DateTime(timezone=True), server_default=db.func.now())

	def __str__(self):
		return '%s' % (self.email)
示例#27
0
class Product(db.Model):
    __tablename__ = 'products'

    id = db.Column(db.String(36), primary_key=True, default=lambda: str(uuid4()))
    name = db.Column(db.String(36), unique=True)
    cost_values = db.Column(db.Float(20))
    unit_per_box = db.Column(db.Numeric(6))
    weight_per_unit = db.Column(db.String(10))
    measure_unit = db.Column(db.String(10), nullable=False)
    shelf_life = db.Column(db.String(10))
    sku = db.Column(db.String(10), unique=True)
    description = db.Column(db.String(70))
    created_at = db.Column(db.DateTime(timezone=True), default=func.now())
    updated_at = db.Column(db.DateTime(timezone=True), onupdate=func.now())
    deleted_at = db.Column(db.DateTime(timezone=True), default=None)
    is_active = db.Column(db.Boolean(10), default=True)
    id_product_line = db.Column(
        db.String(36),
        db.ForeignKey('product_line.id')
    )

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        for keys in kwargs:
            if kwargs[keys] is None or kwargs[keys] == '':
                raise NullValueException(f'The field {keys} can not be null')

    def serialize(self):
        return {
            "id": self.id,
            "name": self.name,
            "cost_values": self.cost_values,
            "unit_per_box": int(self.unit_per_box),
            "weight_per_unit": self.weight_per_unit,
            'measure_unit': self.measure_unit,
            "shelf_life": self.shelf_life,
            "sku": self.sku,
            "description": self.description,
            "id_product_line": self.id_product_line,
            "is_active": self.is_active,
            "created_at": self.created_at,
            "updated_at": self.updated_at,
            "deleted_at": self.deleted_at
        }
示例#28
0
class SocialStat(db.Model):
    __tablename__ = 'social_stat'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(255), index=True)
    timestamp = db.Column(db.DateTime(timezone=True),
                          server_default=db.func.now())
    subscribed_count = db.Column(db.Integer())

    def __str__(self):
        return '%s' % (self.name)
示例#29
0
class MessageLog(db.Model):
    __tablename__ = 'message_log'

    id = db.Column(db.BigInteger, primary_key=True)
    email = db.Column(db.String(255), index=True)
    msg_purpose = db.Column(db.String(128), index=True)
    msg_subject = db.Column(db.String(128))
    msg_text = db.Column(db.Text())
    msg_html = db.Column(db.Text())
    msg_sent = db.Column(db.DateTime(timezone=True), server_default=db.func.now())
示例#30
0
class Contributor(db.Model):
    __tablename__ = 'contributor'

    username = db.Column(db.String(255), primary_key=True, autoincrement=False)
    commits = db.Column(db.Integer())
    avatar = db.Column(db.String(255))
    created_at = db.Column(db.DateTime(timezone=True), server_default=db.func.now())

    def __str__(self):
        return '%s' % (self.username)