Ошибка не может распаковать не повторяемый объект NoneType - PullRequest
0 голосов
/ 24 марта 2020

не знаю, почему код ломается, но я присваиваю 3 переменные вызову функции, которые все используются в вызове, и я продолжаю получать ошибку Нетипа с вызовом функции класса.

Я пытаюсь создать пользователя и передать сообщение об успехе, пользователя и сообщение.

Если успех равен true, тогда он приступит к созданию и отправке пользователю электронного письма активации

пользователь создан пользователем.

сообщение - если есть ошибка (там пользователь был создан ранее и существует)

if email_address and first_name and last_name:
            #register user and check other params
            success, user, message = User.create(email_address=email_address, first_name=first_name, last_name=last_name)

            if success:
                # send activation email

                success, message = User.send_activation_email(email_address=email_address)

                if success:
                    return make_response(jsonify({"Message" : "Registration Successful"}))
                    #Todo include the correct url
                    #return render_template_with_translations("public/auth/register_success.html", **params)
                else:
                    return abort(403, description=message)
            else:
                params["register_error_message"] = message
                return make_response(jsonify({"Message" : params}))
                #return render_template_with_translations("public/auth/register_error.html", **params) 

Класс, вызываемый в users.model

@classmethod
    def create(cls, email_address, password=None, admin=False, first_name=None, last_name=None):
        try:
            # check if there's any user with the same email address already
            user = db.query("Select * FROM User WHERE email_address = {}".formart(email_address))

            if not user:  # if user does not yet exist, create one
                hashed = None
                if password:
                    # use bcrypt to hash the password
                    hashed = bcrypt.hashpw(password=str.encode(password), salt=bcrypt.gensalt(12))

                # create the user object and store it into Datastore
                user = cls(email_address=email_address, password_hash=hashed, admin=admin, first_name=first_name,
                           last_name=last_name)
                user.put()

                return True, user, "Success"  # succes, user, message
            else:
                return False, user, "User with this email address is already registered. Please go to the " \
                                    "Login page and try to log in."
        except:
            print ("Error with application")

errors

...