我现在遇到一个问题,我的网站上有一个“随机”链接,可以看到一个随机用户。我设置它的方法是获取user_id,然后使用重定向来提供正确的页面。我遇到的问题是,如果我多次点击随机按钮,点击后面会在“随机”点击之前将我带回页面。
更具体一点,这就是发生的事情: 首页,单击随机(转到/ user1 /),单击随机(转到/ user4 /),回击(最后在主页上)。在这种情况下,我想结束/ user1 /
这是随机视图方法:
def Random(request):
user = helpers.GetRandomUser()
return redirect('user_display', user_slug=user.username)
模板只有一个指向/ random /的链接,它会被路由到上面的视图。
编辑:显然它在Firefox中正常运行,但在Chrome中运行。我希望它到处都有类似Firefox的行为。
答案 0 :(得分:1)
因此,如果我理解正确,您可以在指向同一网址的链接上点击两次(例如/random_user/
),然后使用随机重定向进行回复。这看起来非常传统,并且听起来不错,以至于Chrome可能会将其视为单个历史记录条目。
要在浏览器中实现您想要的行为,只需在呈现随机用户链接之前生成随机网址。
如果您想在多个视图中使用它,write a custom template tag:
@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>
这样每次点击都会将浏览器引导到另一个网址,并将其记忆为单独的历史记录条目。
答案 1 :(得分:0)
要明确的是,当你说“后退按钮”时,你的意思是:
如果是2,你是通过客户端这样做的吗?比如通过javascript?
答案 2 :(得分:0)
使用以下代码强制浏览器不缓存页面。因此,单击后退按钮会向服务器发送请求,现在您可以捕获它并将其重定向到所需的页面。
from django.views.decorators.cache import cache_control
@cache_control(no_cache=True, must_revalidate=True)
def func()
#some code
return