私は仕事をしようとしている小さなサインアップページを持っています。基本的に、ユーザー名、パスワード、電子メールを入力します。入力したユーザー名がまだ存在しない場合は、「ようこそ (ユーザー名はこちら)!」というウェルカム ページにリダイレクトされます。ユーザーが存在する場合は、サインアップ ページを再レンダリングします。問題は、ユーザーが存在しない場合でも、サインアップ ページを再レンダリングし続けることです。エラーは発生しません。ユーザーが存在するかどうかをチェックする関数「getByName」は、true を返し続けます。誰でも問題を見ることができますか?
「getByName」関数を呼び出すコードは次のとおりです。
if(username and password and verify and email):
if UserInfo.getByName(username) == True:
self.renderSignup()
else:
UserInfo.register(username, password, email)
cookieVal = str(encrypt.makeCookieHash(username))
self.response.headers.add_header("Set-Cookie", "username=%s; Path=/" % (cookieVal))
self.redirect("/welcome")
else:
self.renderSignup(username, email, usernameError, passwordError, verifyError, emailError)
「getByName」関数を含む「UserInfo」データ モデルと他の関数を次に示します。
class UserInfo(db.Model):
passwordHash = db.StringProperty(required = True)
email = db.StringProperty(required = True)
username = db.StringProperty(required = True)
@classmethod
def register(cls, name, password, email):
encrypt = Encrypt()
pwHash = encrypt.hashUserInfo(name, password)
UserInfo(passwordHash = pwHash, email = email, username = name).put()
@classmethod
def getByName(cls,name):
usersWithName = UserInfo.gql("where username = :1", name)
if usersWithName != None:
return True
return False