I have a DB Table called Item. Item has a
status attribute, that can be either of
new todo doing done
On my website I have two views showing tables of Item.
Depending on the Item status, there are certain actions a user can perform ("move to todo", "move to doing", "move to done").
If you consider View 1 and View 2, they both have in common that they contain items with the status
todo. So on both I have a Button linking to a URL called
where id - Item's status is set to "doing".
Now I want the user to be redirected back to where he clicked the button (View 1 or View 2).
My questions are:
I'm using the helper function which is recommended here: http://flask.pocoo.org/docs/reqcontext/
def redirect_url(default='index'): return request.args.get('next') or \ request.referrer or \ url_for(default)
Use it in in the view
def some_view(): # some action return redirect(redirect_url())
Without any parameters it will redirect the user back to where he came from (
You can add the get parameter
next to specify a url. This is useful for oauth for example.
instagram.authorize(callback=url_for(".oauth_authorized", next=redirect_url(), _external=True))
I also added a default view if there should be no referrer for some reason
The snippet you linked basically does the same but more secure by ensuring you cannot get redirected to a malicious attacker's page on another host.