Wczo­raj na Bli­pie poja­wiła się dys­ku­sja na temat obsługi cache w Django i domyśl­nego prze­cho­wy­wa­nia w nim wszyst­kich wido­ków, z pane­lem admi­ni­stra­cyj­nym włącz­nie. Kon­cep­cji poja­wiło się kilka, z łata­niem kodu Django włącz­nie. Na szczę­ście roz­wią­za­nie jest bar­dzo proste.

Aby zblo­ko­wać pamięć pod­ręczną dla panelu admi­ni­stra­cyj­nego (oglą­da­nie nie­ak­tu­al­nych danych przez admi­ni­stra­tora to raczej średni pomysł), wystar­czy ude­ko­ro­wać go funk­cją never_cache tak, jak robi się to z każ­dym innym widokiem:

from django.conf.urls.defaults import *
from django.contrib import admin
from django.views.decorators.cache import never_cache

admin.autodiscover()

urlpatterns = patterns('',
    ('^admin/(.*)', never_cache(admin.site.root)),
)

emes przy­go­to­wał nawet sto­sowną łatkę na doku­men­ta­cję.