1
私にはprevious questionのような質問があります。参照ページにリダイレクトする最良の方法
同じアプリで、ユーザーが上矢印をクリックしてから同じページにリダイレクトするときに+1を追加するVoteHandler
があります。
は今、私はページやURLへのURLパラメータを追加したことを、私は正しいページにリダイレクトできるようにする必要があり、この
/dir?type=tshirt
のように見えます。
そして、hereによってNick Johnsonによってreferrer
リダイレクトの良い方法ではありません。
VoteHandler
を修正して正しいページにリダイレクトする方法についてお手伝いします。
ありがとうございます!
class VoteHandler(webapp.RequestHandler):
def get(self, id):
id = int(id)
item = Item.get_by_id(id)
user = users.get_current_user()
if user:
greeting = ("%s (<a href='%s'>sign out</a>)" %
(user.nickname(), users.create_logout_url(self.request.uri)))
#--check if user voted on this item before--#
query = SiteUser.all()
query.filter("liked_items =", (str(item.key().id())))
already_voted = query.get()
if already_voted:
self.redirect("/onevote")
else:
query = SiteUser.all()
query.filter("site_user =", users.get_current_user())
data = query.get()
data.total_votes += 1
data.liked_items = str(item.key().id())
data.site_user = users.get_current_user()
db.put(data)
item.points += 1
item.put()
if self.request.referrer == 'http://localhost:8083//newest':
self.redirect('/newest')
elif self.request.referrer == 'http://localhost:8083/hot':
self.redirect('/hot')
#How do I fix this line to get the correct url parameter?
elif self.request.referrer == 'http://localhost:8083/dir?type=tshirt':
self.redirect('/dir/tshirt')
else:
self.redirect("/")
else:
greeting = ("<a href='%s'>Sign in with your Google account or register</a>." %
cgi.escape(users.create_login_url(self.request.uri)))
UPDATE
answer by systempuntooutは素晴らしい作品が、私は私が得ることができるように
/vote/%s?type=%s
に
/vote/%s
からDirectory
に投票リンクを変更しなければなりませんでしたmerchandise_type
のVoteHandler
:
self.response.out.write("<ol>")
for item in items:
self.response.out.write("""<li>
<a href="/vote/%s?type=%s">^</a><a href="%s">%s</a> <span id='Small'>(%s)</span><br />
<div id='Small'>
%s points %s by %s <a href="/item/%s"></a> |
<a href="/item/%s#disqus_thread"></a>
</div>
</li><br /> """ %
(str(item.key().id()), merchandise_type, item.url, item.title, urlparse(item.url).netloc,
item.points, item.date.strftime("%B %d, %Y %I:%M%p"), item.user_who_liked_this_item, str(item.key().id()), str(item.key().id())))
self.response.out.write("</ol>")
感謝を。それは素晴らしい作品です。しかし、 'Directory'ハンドラで' merchandise_type'を投票リンクに追加しなければ、 'VoteHandler'で型を取得できませんでした。私はその記録を更新しました。再度、感謝します。 – Zeynel