Example #1
0
def create_account(username: str,
                   password: str,
                   register_type=account_constant.ACCOUNT_REGISTER_TYPE_EMAIL,
                   **extra_fields):
    """
        创建用户
    :param username: 用户名 str
    :param password: 密码 str
    :param register_type: 注册类型 int (默认为邮箱类型)
    :param extra_fields: 额外扩展字段
    :return: created, user
    """
    try:
        email = extra_fields.get("email", None)
        phone = extra_fields.get("phone", None)
        avatar = extra_fields.get("avatar", None)
        nickname = extra_fields.get("nickname", None)
        gender = extra_fields.get("gender")

        user = User()
        user.email = email
        user.phone = phone
        user.avatar = avatar
        user.nickname = nickname
        user.gender = gender

        user.username = username
        user.register_type = register_type
        user.set_password(password)

        # 初始化修改头像等时间为10天前,以便可以创建后直接修改头像等
        default_change_datetime = timezone.datetime.now().date(
        ) - timezone.timedelta(days=10)
        user.avatar_change_date = default_change_datetime
        user.nickname_change_date = default_change_datetime

        user.save()
        return True, user

    except Exception as e:
        logger.error(e)
        return False, None