1

ランダムなユーザーを表示するための「ランダムな」リンクがサイトにあるという問題が発生しています。私が設定した方法は、user_idを取得してから、リダイレクトを使用して適切なページを提供することです。私が遭遇している問題は、ランダムボタンを複数回クリックすると、「ランダム」クリックの前に戻るをクリックするとページに戻ることです。

より具体的には、これが起こっていることです:ホームページ、ランダムをクリック(/ user1 /に移動)、ランダムをクリック(/ user4 /に移動)、ヒットバック(ホームページに移動)。このシナリオでは、最終的に/user1/になります。

これはランダムビュー方式です。

def Random(request):
    user = helpers.GetRandomUser()
    return redirect('user_display', user_slug=user.username)

テンプレートには、上記のビューにルーティングされる/random/へのリンクがあります。

編集:どうやらそれはFirefoxでは期待通りに動作しますがChromeでは動作します。どこでもFirefoxのような動作をしたいと思います。

4

3 に答える 3

1

したがって、私があなたを正しく理解している場合は、同じURLへのリンク(のような/random_user/)を2回クリックし、ランダムなリダイレクトで応答します。これは非常に型破りなようで、Chromeがこれを単一の履歴エントリと見なすほど間違っているようには聞こえません。

ブラウザ間で必要な動作をアーカイブするには、ランダムなユーザーリンクをレンダリングする前に、ランダムなURLを生成するだけです。

複数のビューで使用したいので、カスタムテンプレートタグを記述します。

@register.simple_tag
def random_user_url():
    user_url = # generate your random user url
    return user_url

テンプレート内:

{% load your_tag_lib %}
<a href="{% random_user_url %}">Random user</a>

このように、クリックするたびにブラウザが別のURLに移動し、個別の履歴エントリとして記憶されます。

于 2012-06-06T02:01:34.827 に答える
1

次のコードを使用して、ブラウザにページをキャッシュしないように強制します。したがって、戻るボタンをクリックするとサーバーにリクエストが送信され、サーバーをキャッチして目的のページにリダイレクトできます。

from django.views.decorators.cache import cache_control

@cache_control(no_cache=True, must_revalidate=True)
def func()
  #some code
  return
于 2012-06-06T03:01:56.900 に答える
0

明確にするために、あなたが「戻るボタン」と言うとき、あなたは意味します:

  1. ブラウザの戻るボタン
  2. 自分で作成した戻るボタン

2の場合、クライアント側でこれを行っていますか?javascript経由など?

于 2012-06-05T23:59:18.733 に答える