django发布请求数据缓存

时间:2011-10-27 19:44:28

标签: django django-forms django-templates django-views http-post

你有一个带有表单和许多输入的模板,它通过POST请求将一些数据传递给视图,处理它们并将结果发送到另一个模板。在最终模板中,如果我使用浏览器后退按钮跳转到第一个视图,我可以再次看到旧数据。我刷新页面,然后我插入新数据,我再次提交,但是当我看到最终视图时,仍会保留一些旧数据。即使我重新启动调试服务器,问题仍然存在。我怎么能阻止它?似乎有一些数据缓存,我只能刷新浏览器缓存。这是观看代码:http://dpaste.com/640956/和第一个模板代码:http://dpaste.com/640960/

任何想法?

tnx - luke

2 个答案:

答案 0 :(得分:0)

不是django填充形式。是缓存导航器。您应该关闭缓存导航器。我使用自定义中间件来执行此操作:

from django.http import HttpResponse

class NoCacheMiddleware(object):

    def process_response(self, request, response):
        response['Pragma'] = 'no-cache'
        response['Cache-Control'] = 'no-cache must-revalidate proxy-revalidate no-store'
        return response

请记住在settings.py上添加中间件:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'ghap.utils.middleware.NoCacheMiddleware',
)

答案 1 :(得分:0)

表格标签中的autocomplete =“off”也许可以帮到你。

https://developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion