python eve - 在请求前返回响应

时间:2016-10-27 18:48:53

标签: python eve

我正在使用python-eve开发一个rest-api。我的对象包含网址,描述和图像。用户可以插入或查看产品(用于插入 - 用户只需添加网址,然后生成描述和图像)。

为了避免重复更新 - 当用户使用POST请求插入已存在的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

但是,当两次添加相同的网址时,我会不断添加(覆盖)现有项目。

如何将用户从帖子前回调挂钩重定向到已存在的产品?

1 个答案:

答案 0 :(得分:0)

如果我理解得很好,您希望使用类似查询的响应来响应POST(写入)请求。在REST中,你真的不想这样做,而Eve(作为一个REST框架)并不适合那样,尽管你可能会通过一些黑客行为获得类似的结果。

在您的案例中,您可能会为unique字段设置url规则,因此POST最终会得到409 Conflict响应。