views:

133

answers:

2

I have two templatetags in my app which contain forms which show entries in db. When I alter data or add new entry to db, the forms show the old data. While in admin panel everything is correct (updated). When I restart the server (I mean manage.py runserver) forms show updated db entries. How to make the forms show updated data?

regards
chriss

EDIT:
file: templatetags/oceny_tags.py:

from django import template
from oceny.formularze import StudentFormularz, PrzeniesStudentaFormularz

def dodajStudenta(req):
    formularz = StudentFormularz(req)
    return {'formularz': formularz}

def przeniesStudenta(req):
    formularz = PrzeniesStudentaFormularz(req)
    return {'formularz': formularz}

register = template.Library()
register.inclusion_tag('oceny/formularz_studenta.html', takes_context = False)(dodajStudenta)
register.inclusion_tag('oceny/formularz_przenies_studenta.html', takes_context = False)(przeniesStudenta)

file: views.py view responsible for handling forms:

def zarzadzajStudentami(request):
    formularze = ['dodaj_studenta', 'przenies_studenta']
    req = {}
    for e in formularze:
        req[e] = None
    if request.POST:
        req[request.POST['formularz']] = request.POST
        if request.POST['formularz'] == 'dodaj_studenta':
            formularz = StudentFormularz(request.POST)
            if formularz.is_valid():
                formularz.save()
                return HttpResponseRedirect(reverse('zarzadzaj_studentami'))
        elif request.POST['formularz'] == 'przenies_studenta':
            formularz = PrzeniesStudentaFormularz(request.POST)
            if formularz.is_valid():
                student = Student.objects.get(id = request.POST['student'])
                grupa = Grupa.objects.get(id = request.POST['grupa'])
                student.grupa = grupa
                student.save()
                return HttpResponseRedirect(reverse('zarzadzaj_studentami'))
    return render_to_response('oceny/zarzadzaj_studentami.html', {'req': req}, context_instance = RequestContext(request))

I realize that the code may be lame in some cases. I would appreciate any other hints how to write things better.

A: 

Are you using some kind of cache system? It could be that.

Gonzalo Quero
How to check that? In my `settings.py` there is nothing that I found in documentation regarding caching.
chriss
A: 

Look for "CACHE_BACKEND= ????" in your settings.py file. The value will change as a function of which caching mechanism you are using. Comment this out and restart the server. If your values are now showing correctly, then it was a caching problem.

Peter Rowell
There is no such setting in my settings file. That was actually the first thing I checked...
chriss