2017-06-11 45 views
0

私はログインをしていますが、次のエラーがあります。"属性エラー:オブジェクトタイプ "クライアントに属性がありません"取得する ""。"属性エラー:タイプオブジェクト "クライアント"に属性がありません "get

@view_config(ROUTE_NAME = 'ログイン'、レンダラ= 'テンプレート/ login.pt')は

def login(request): 
    a = request.params.get('login1') 
    contrasenia = request.params.get('password1') 
    if request.method == 'POST': 
     if a and Client.get(a) == contrasenia: 
      headers = remember(request, a) 
      return HTTPFound('/', headers=headers) 
    return {} 

答えて

1

エラーの問題について説明します。この行は問題です:

if a and Client.get(a) == contrasenia: 

getの属性を持っていませんClientオブジェクト。申し訳ありませんが、提供された情報に基づいてそのオブジェクトがどのようなものになる可能性があるのか​​わかりません。

公式のピラミッドSQLAlchemy + URL dispatch wiki tutorialで作業することをおすすめします。データベースにSQLiteを使用していますが、その概念はPostgresにも当てはまります。認証の手順には、特定の問題に関する適切な詳細も含まれています。

0

私が正しいと推測している場合は、おそらくユーザーを認証しようとしています。

まず適切にあなたの変数に名前を付ける:

email = request.params.get('email') 
password = request.params.get('password') 

を次に(イムあなたはSQLAlchemyのを使用している推測)電子メールでクライアントを照会:

client = Session.query(Client).filter(Client.email == email).first() 

クライアントが指定したメールのために存在する場合、(パスワードハッシュをチェックパスワードセキュリティについてのウェブ検索、サンプルソリューションSalt and hash a password in python

if client.password_hash == hashing_func(password): 
    return HTTPFound('/', headers=remeber(request, client.id)) 
関連する問題