шаблоны тегов не обновляются - PullRequest
1 голос
/ 27 декабря 2008

В моем приложении есть две метки-шаблоны, которые содержат формы, которые показывают записи в БД. Когда я изменяю данные или добавляю новую запись в базу данных, формы показывают старые данные. Пока в админке все правильно (обновлено). Когда я перезагружаю сервер (я имею в виду manage.py runserver), формы показывают обновленные записи в БД. Как заставить формы отображать обновленные данные?

С уважением
Крисс

РЕДАКТИРОВАТЬ:
файл: 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, ответственный за обработку форм:

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))

Я понимаю, что в некоторых случаях код может быть неудачным. Буду признателен за любые другие советы, как писать вещи лучше.

Ответы [ 3 ]

1 голос
/ 18 мая 2015

У меня слишком мало повторений, чтобы комментировать, но takes_context по умолчанию равно False, что делает ваше назначение избыточным. Кроме того, но теперь я предполагаю, но это может быть связано с вашей проблемой.

0 голосов
/ 29 декабря 2008

Ищите «CACHE_BACKEND = ????» в вашем файле settings.py. Значение будет меняться в зависимости от того, какой механизм кэширования вы используете. Закомментируйте это и перезапустите сервер. Если ваши значения теперь отображаются правильно, значит, это была проблема с кэшированием.

0 голосов
/ 27 декабря 2008

Используете ли вы какую-то кеш-систему? Это может быть так.

...