我在数据库中的一些表是由 Django 之外的几个 python 脚本定期更新的。结果,Django 的视图不知道数据库中的最新数据,而是显示旧数据。我在网上尝试了很多建议,但除了在使用模型之前调用 connection.close() 之外没有任何效果。
这是我尝试过的方法,没有任何效果。
from django.views.decorators.cache import never_cache
@never_cache # <=====
def GetData(request):
data = Table.objects.get(id=1) # Still giving outdated data
template = loader.get_template('data/data.html')
context = Context({
'lp': lp,
})
return HttpResponse(template.render(context))
data = Data.objects.get(id=1)
data = data.objects.get(id=data.id) # data is still old
from django.core.cache import cache
cache.clear()
行之有效的方法。:
from django.db import connection
def GetData(request):
# Add this before accessing the model.
# This also connection.close() prevents the
# MySQL 2006, 'MySQL server has gone away' error.
connection.close()
data = Table.objects.get(id=1) # Giving outdated data
template = loader.get_template('data/data.html')
context = Context({
'lp': lp,
})
return HttpResponse(template.render(context))