私はpython-eveを使ってrest-apiを開発しています。私のオブジェクトには、URL、説明、画像が含まれています。ユーザーは商品を挿入または閲覧することができます(挿入するには、単にユーザーがURLを追加するだけで、説明と画像が生成されます)。python eve - pre-requestで応答を返します
繰り返しの更新を避けるために、ユーザーがPOSTリクエストを使用して既に存在するURLを挿入すると、そのURLに対応するアイテムのURLにリダイレクトしたいと思います。二度同じURLを追加する際
def pre_post_callback(request, lookup):
prev_object = current_app.data.driver.db['products'].find_one({"url":lookup.values['url']})
if prev_object:
# here I would like to redirect the user to the /product/id of the product corresponding.
app.on_pre_POST += pre_post_callback
は、しかし、私は(上書き)既存のアイテムを追加し続ける:そのために、私はこのコードを追加しました。
プレポストコールバックフックからユーザーを既存の製品にリダイレクトするにはどうすればよいですか?
ここでは 'lookup'が確実に動作していますか?ドキュメントは次のように言っています: 'コールバックは、要求されているリソース、オリジナルのflask.requestオブジェクト、および現在のルックアップ辞書を引数として受け取ります(例外は、lookup引数を提供しないon_pre_POSTフックです)。 – HassenPy
あなたの 'if prev_object'ブロック – HassenPy
if条件のコードは一般的にはリダイレクトでしたが、問題はありませんでした。どのようにしてこの段階でレスポンスを返しますか? –