0

私は OAuth2 で python shopify API を使用しようとしていて、API を介して作業しており、django auth サンプルをレガシーではなく oauth に移動しようとしています (django を使用せず、より単純な例のために appengine で webapp2 をターゲットにしています) . ;-)

セッションを取得した後、shopify_session.shop() がハンドラーで呼び出され、NameError: "global name 'Shop' is not defined" が発生するという問題が発生しています。

現在のコードを見ると、このメソッドの実装は (59 行目)

def shop(self):
    Shop.current()

しかし、クラス Shop にどのようにアクセスできるかわかりません。クラス Shop は resources.py で定義されており、session.py のどこにもインポートされていません。これは API コードのバグですか、それとも何らかの魔法が行われているのか、またはそのクラスをセッション モジュールに挿入するために何らかのセットアップが実行されているのでしょうか。

4

2 に答える 2

2

おっと、そのメソッドは ruby​​ shopify_apiライブラリから不適切に移植されました。すでに壊れていたので、完全に削除することにしました。したがって、アプリケーションは動作に依存する必要がなく、Ruby ライブラリでさえ実際にはセッション インスタンスを使用していません。それが意味を持つ唯一の方法は、セッションを一時的にアクティブにしてから現在のショップを取得することです。

shopify_django_appサンプル アプリはOauth2サポートで更新されましたが、App Engine 上の django の手順と zip ファイルはまだ更新する必要があります。

于 2012-06-18T14:00:05.810 に答える
1

私にはバグのように見えます。インポートが欠落しているだけでなく、このメソッドが何も返さないという事実もあります。FWIW「魔法のようなもの」(ソースコードをざっと見ただけでは見つけられませんでした)があるとすれば、それは非常に非pythonicです。

于 2012-06-18T11:13:02.790 に答える