0

有没有人遇到过这个问题?我有一个详细视图,当我第一次单击它时 - 我希望显示的所有内容都可以。但是,如果我刷新页面 (ctrl + F5),或者导航离开和返回,则只会再次显示其中的一部分。

这是我的观点的简化示例:

@login_required(login_url='/login/')
def detail(request, id):
    queryset1 = ...filter(id = id).values().get() 
    queryset2 = ...filter(id = id)
    queryset3 = ...filter(id = id) 
    return render_to_response('template.html',{'q1':queryset1,...}

网址:

urls = ('',
    url(r'^respondent-detail/(?P<id>\d+)/$', 'myapp.views.detail',name='detail'),
)

看法:

{% include 'includes/header.html' %}
{% include 'includes/navigation.html' %}
{{ q1.x }}
{{ q1.y }}
{{ ...}} 

{% if q2 %}
    {% include 'q2.html' %}
{% else %}
    <p>Post this 2</p>
{% endif %}     

{% if q3 %}
    {% include 'q3.html' %}
{% else %}
    <p>Post this 3</p>
{% endif %} 
  • 在第一次刷新时,q2 和 q3 都返回“发布这个”
  • 在第二次刷新时,q2 按预期返回,q3 返回“Post this”
  • 在第三次刷新时,q2 和 q3 按预期返回。

更新

我找到了一个解决方案,@never_cache在视图的顶部添加完全消除了这个问题,这表明当我使用硬刷新时缓存发生了一些奇怪的事情。有什么想法吗?

4

1 回答 1

0

使用django-debug-toolbarand django-debug-cache-panelor django-cache-panelI 已经能够嗅出大多数不明显的缓存问题,您可以锁定工具栏,使其仅对某些 IP 可见。

于 2013-02-24T14:04:06.630 回答